Не могу придумать алгоритм переписки, вот пример алгоритма:
Пользователь жмет на кнопку отправить – сообщение отображается в окне переписки и посылается AJAX запросом на сервер – сообщению присваивается время с учетом часового пояса и записывается в таблицу с флагом не прочитано - запрашиваем все сообщения с собеседником, отмечаем все выбранные сообщения как прочитанные, собираем JSON и отсылаем обратно - заменяем все сообщения в окне переписки.
Параллельно с этим запускаем setInterval который отсылает AJAX запрос - выбираем все непрочитанные сообщения - если в них есть сообщения собеседника то помечаем их как прочитанные, заворачиваем в JSON, считаем количество непрочитанных сообщений по всем остальным собеседникам так же заворачиваем в JSON и отсылаем - обрабатываем JSON, выводим сообщения текущего собеседника, и количество непрочитанных сообщений другим собеседникам.
Если пользователь меняет собеседника то меняем ID собеседника и перезапускаем setInterval, загружаем всю переписку изменяя статус сообщений на прочитано.
+:
надежная работа
создается впечатление переписки в реальном времени
практически нет возможности пропустить сообщение
-:
по моему несет большую нагрузку на сервер и трафик
Прочитал я про WebSocket, технология классная на первый взгляд, но в моём случае это стрельба из пушки по воробьям. Но следующее веб-приложение буду писать на этой технологии. А в этот раз подскажите алгоритм на AJAX