Получение данных и подписка.

  • Автор темы Автор темы Redjik
  • Дата начала Дата начала
А как в чатах на вебсокетах правильнее обрабатывать короткие потери соединения между пинг понгами, если нужна гарантия доставки?
Т.е. клиент не понял, что был дисконнект, но в это время ему прилетело сообщение.

Навскидку приходит такая схема:
- с клиента отправлять подтверждения о получении сообщений
- с сервера при отправке сообщений слать все неподтвержденные
- с сервера дополнительно по таймеру слать неподтвержденные
- на клиенте хранить id сообщений, при получении с сервера показывать только новые
 
- на клиенте хранить id сообщений, при получении с сервера показывать только новые
Достаточно в следующем сообщении присылать id предыдущего в беседе. Если этот id остутствует на клиенте, значит его надо явно перезапросить. Ну и с клиента переодически чекать просто last id, на случай не полученных последних сообщений.
 
А как в чатах на вебсокетах правильнее обрабатывать короткие потери соединения между пинг понгами, если нужна гарантия доставки?
Т.е. клиент не понял, что был дисконнект, но в это время ему прилетело сообщение.

Навскидку приходит такая схема:
- с клиента отправлять подтверждения о получении сообщений
- с сервера при отправке сообщений слать все неподтвержденные
- с сервера дополнительно по таймеру слать неподтвержденные
- на клиенте хранить id сообщений, при получении с сервера показывать только новые
чувак, поздравляю, ты почти изобрел saga
 
Ну раз человек задаёт очевидные вопросы, явно он ждёт очевидных ответов… а вообще, мне казалось, что эта проблема давно исследована и успешно решена.
 
Сверху