@AEvlushin

Как оптимизировать алгоритм переписки на сайте?

Не могу придумать алгоритм переписки, вот пример алгоритма:
Пользователь жмет на кнопку отправить – сообщение отображается в окне переписки и посылается AJAX запросом на сервер – сообщению присваивается время с учетом часового пояса и записывается в таблицу с флагом не прочитано - запрашиваем все сообщения с собеседником, отмечаем все выбранные сообщения как прочитанные, собираем JSON и отсылаем обратно - заменяем все сообщения в окне переписки.
Параллельно с этим запускаем setInterval который отсылает AJAX запрос - выбираем все непрочитанные сообщения - если в них есть сообщения собеседника то помечаем их как прочитанные, заворачиваем в JSON, считаем количество непрочитанных сообщений по всем остальным собеседникам так же заворачиваем в JSON и отсылаем - обрабатываем JSON, выводим сообщения текущего собеседника, и количество непрочитанных сообщений другим собеседникам.
Если пользователь меняет собеседника то меняем ID собеседника и перезапускаем setInterval, загружаем всю переписку изменяя статус сообщений на прочитано.
+:
надежная работа
создается впечатление переписки в реальном времени
практически нет возможности пропустить сообщение
-:
по моему несет большую нагрузку на сервер и трафик
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега PHP
Web developer
Сокет-сервер.
Можно на PHP https://habrahabr.ru/post/209864/ , хотя лично я предпочитаю Node.JS
Ответ написан
@AEvlushin Автор вопроса
Где его взять?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы