@zagamay_ru

Как сильно пострадает оперативная память?

Пробую написать чат на вебсокетах с использованием Ratchet.
Открываю порт и записываю каждое соединение в SplObjectStorage.
Заметил что при каждом обновлении страницы записывается новое соединение в объект, а старое остаётся, тоже самое с кучей открытых вкладок сайта.
Получается мой объект может содержать тучу данных. Пробовал не записывать новые коннекты если есть совпадение по ключу (например id юзера), но тут другой трабл возникает (не приходят сообщения в другие вкладки или браузеры где открыт сайт).
Чем грозит такой подход и как себя обезопасить от обжорства всей памяти?
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
А удалять не пробовали?
socketo.me/docs/connections

А вообще: https://toster.ru/answer?answer_id=931715
Ответ написан
Комментировать
Да не парьтесь, юзер докупит еще пару планок и все нормально будет. Все так делают
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Используйте асинхронный подход через WebStorage в качестве семафоров и через него ведите учёт принятых сообщений: последовательность дедупликацию (включая сокеты соединений) и прочее.
2. Используйте подход для реализации транзакций, чтобы предотвратить все возможные конфликты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы