Вы можете использовать шаблон публикации-подписки. Давайте поймем, что такое шаблон публикации-подписки.
publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers, but instead characterize published messages into classes without knowledge of which subscribers, if any, there may be. Similarly, subscribers express interest in one or more classes and only receive messages that are of interest, without knowledge of which publishers, if any, there are.
Источник: Wikipedia
Ниже приведен пример использования RabbitMQ MQTT адаптер:
Подписаться приложение пользователя А к теме «/ тема/пользователя-а», приложение пользователя B к теме «/topic/user-b "и опубликовать статус онлайн/офлайн в теме"/topic/presence ". Создайте программу на своем серверном сервере, чтобы подписаться на «/ topic/presence». Если какое-либо обновление происходит от позволяет говорить пользователь А затем опубликовать обновление для всех друзей пользователя A. Таким образом, пользователь B получит онлайн/оффлайн обновление пользователя A.
User A User B PresenceListener
Subscribe /topic/user-a /topic/presence /topic/presence
Publish /topic/user-b /topic/presence friend list
Реальная проблема здесь в том, как опубликовать "не в сети". В одном случае, если пользователь закрывает приложение, пока интернет все еще активен, приложение может публиковать статус «офлайн» на сервере, но что происходит, когда Интернет перестает работать?
Пройдет через «последнюю волю и завещание» (lwt).
Сообщения LWT на самом деле не связаны с обнаружением того, был ли клиент отключен или нет (эта задача обрабатывается сообщениями keepAlive). Сообщения LWT о том, что происходит после того, как клиент отключен. Сообщения LWT могут использоваться для определения сообщения, которое будет опубликовано брокером от имени клиента, поскольку клиент находится в автономном режиме и больше не может публиковать его.
Источник: http://tuanpm.net/what-is-mqtt/
Для исходного образца кода с присутствием онлайн в автономном режиме, вы можете оформить наш код Applozic Chat Javascript Plugin доступны в Github https://github.com/Applozic/Applozic-Web-Plugin/
Демонстрационная страница: https://www.applozic.com/docs/chat-examples/web.html
вы должны отправить continuas ajax запрос на сервер с задержкой, так как facebook делает –
@FastSnail Facebook наверняка делает ** нет ** делаем это. – ceejayoz
Я повторно открыл этот вопрос, потому что связанный дубликат с 2011 года и, таким образом, не упоминает о стандартном решении веб-узлов. – ceejayoz