Уведомления в реальном времени с использованием XMPP

StackOverflow https://stackoverflow.com/questions/3656457

  •  01-10-2019
  •  | 
  •  

Вопрос

Я ищу включить две функции в моем приложении с помощью XMPP. Первый чат из одного к одному, который почти завершен (используя Strophe), а второй - уведомления в реальном времени, как это работает в Facebook. Я пытался понять систему Pubsub в XMPP, но не чувствую, что подойдет этой конкретной проблемой. Пожалуйста, исправьте, если неправильно, это может быть связано с правильными понятиями. Мое требование - это - будут предопределенные события о том, что любой из пользователей может стрелять, и когда кто-то делает, другие, которые онлайн, должны получить уведомление о том же. Далее я также хотел бы проверить, предпочитает ли пользователь получать уведомления или не до их отправки. То, что я не получаю сюда, есть, если Pubsub будет использоваться, где и как узлы подходят. Могу ли я создать только один узел, на которого каждый другой будет подписаться? В таком случае, как подписчики опубликуют свои события на нем, не будучи владельцем узла?

Другой метод, о котором я думаю, это отправить сообщение JID всех пользователей один за другим с типом заголовка или с дополнительной полезной нагрузкой <notif/> для дифференциации его из нормальных сообщений. Это метод отлично принимает масштабируемость в учетной записи?

Это было полезно?

Решение

Pubsub будет подходящим решением для этого случая. Это обрабатывает все ваши требования от того, что я вижу. Вам нужно будет настроить узел для каждого типа события, если вы ожидаете, что пользователи подписываются по-разному для каждого типа сообщения (альтернативно, фильтры могут использоваться на одном узле, но я думаю, что несколько узлов легче). Владелец узла может позволить кому-либо публиковать в узле, так что это не проблема.

Был упомянутый PEP, но не правильное решение, если вы хотите опубликовать пользователям, которые не в вашем реестре.

Pubsub также позволит вам определить любой тип контента, который вы хотите для сообщений или None вообще, если простой акт передачи сообщений достаточно информативен.

Другие советы

Pubsub будет работать, однако, что вы описываете, чувствует себя больше, как MUC (Многопользовательский чат).

В основном это создает чат, что ваши посетители могут присоединиться (Может быть, не используя этот глагол), а затем, ну, когда Любой из них чувствует сообщение для чата, все они получают его. Отказ Вы, безусловно, можете иметь конфигурацию, где вы разрешаете только некоторые пользователи публиковать.

Поскольку у вас уже есть клиент, работающий на браузере, с Strophe, он должен быть довольно легким. Просто убедитесь, что это MUC компонент работает на вашем сервере.

То, что вы пытаетесь сделать с библиотекой XMPPPPPPP, т. Е. Отправка сообщения нескольким JID при необходимости, это то, что PUB-Sub или Muc может сделать для вас. : D Следовательно, в зависимости от вашего типа приложений необходимо выбрать один и продолжать экспериментировать с XMPP, все должно быть понятно, как вы действуете ....

Чтобы ответить на ваш второй вопрос, касающийся уведомления о реальном времени, то, что вам нужно, это использовать PEP вместо PubsUb. Основное отличие между 2 в том, что Пеп Будет ли только публиковать на тех, кто в вашем списке, который я думаю, что вы хотите. Кроме того, я думаю, что PEP более широко поддерживается, чем Pubsub или ATLEast Jabber.org поддерживает его. Единственная проблема с PEP в том, что она требует Возможность сущности служба поддержки.

Я вспомогал это здесь. Отказ Примеры находятся в Java; Надеюсь, вы не неблагодаря этому ;-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top