В этом сценарии необходимо учитывать несколько моментов:
Обнаружение отключения / включения приложения
См .: Онлайн и офлайн события .
Когда ваше приложение обнаруживает событие online
после пробуждения компьютера, вы можете получить любую информацию, которую вы пропустили.
Для старых веб-браузеров вам нужно сделать это более умным способом. На Pusher мы добавили проверку пинг-понга между клиентом и сервером. Если клиент не получает пинг в течение определенного времени, он знает, что существует проблема с подключением. Если сервер отправляет эхо-запрос и не возвращает pong в течение определенного времени, он знает, что есть проблема.
Механизм пинг-понга определен в спецификации , но способ отправки пинга или понга еще не определен в API WebSocket.
Получение пропущенной информации
Большинство серверов реального времени доставляют сообщения только подключенным клиентам. Если клиент не подключен, возможно, из-за временного нарушения работы сети или его компьютера некоторое время спит, эти клиенты пропустят сообщение.
Некоторые платформы предоставляют доступ к сообщениям через историю / кеш. Для тех, кому это не нужно, вам нужно обнаружить проблему (как указано выше), а затем извлечь пропущенные сообщения. Хороший способ сделать это - предоставить временную метку или идентификатор последовательности для каждого сообщения, чтобы вы могли позвонить на свой веб-сервер и сказать «дайте мне все сообщения, начиная с X».