2016-08-03 4 views
0

Я недавно играл с новым модулем MUC-Sub в ejabberd - в случае использования мне нужно иметь постоянные комнаты WhatsApp в моем мобильном приложении. Прежде чем я перейду к использованию MUC/Sub, может ли эксперт ejabberd обосноваться на нижеследующих концепциях, пожалуйста? Вероятно, это недостаток полного знания эджабберда с моей стороны, поэтому основные вопросы. Или дайте мне знать, пожалуйста, хорошее место, чтобы лучше понять понимание ниже ... Я уже подробно изучил эти две ссылки (https://blog.process-one.net/xmpp-mobile-groupchat-introducing-muc-subscription/ и https://docs.ejabberd.im/developer/proposed-extensions/muc-sub/). Благодаря!ejabberd MUC и MUC/Sub-Clarification

По существу, если нам нужна комната MUC, чтобы прекратить уничтожение, когда все пользователи отключены, не могли бы мы просто отключить эту функцию, чтобы служба продолжала работать, даже когда участники ушли или комната пуста. Службу по-прежнему можно было бы продолжать указывать на участников первоначальной комнаты, которые присоединились к комнате, и в случае, если в комнате будет отправлено сообщение, сообщение получит очередь в потоке каждого участника. Если участник находится в автономном режиме, сообщение войдет в его/ее список автономных сообщений (вместо архива/MAM, который в настоящее время используется MUC-Sub). Почему нам пришлось полагаться на модель Pub-Sub и MAM, если бы эта проблема могла быть решена с помощью простого удержания ссылки участника в комнате (даже после того, как он/она отключился), а затем используя модуль mod_offline (что должно произойти автоматически).

Уверен, что здесь есть основополагающая причина, которую я не вижу, но ценю, если кто-то может пролить свет, пожалуйста!

ответ

0

Как сообщается в блоге, это не вопрос сохранения живого чата или нет. Тот факт, что пользователи не могут получать нажатия в автономном режиме или при их повторном подключении, если они не присоединяются снова, заключается в том, что MUC основан на наличии. Пользователь, которого нет в комнате, не является обитателем комнаты и не должен ничего получать.

Рекомендую вам внимательно прочитать XEP-0045 MUC и MUC Sub blog post. Вопрос MUC Sub должен быть более очевидным.

Если вы сделаете это, вы заметите, что XEP-0045 определить идею постоянного MUC:

Persistent номер Комната, которая не разрушается, если последний обитатель выходов; antonym: Временный номер.

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

Обычно вы хотели бы объединить этот параметр для комнаты с включенным MUC Sub, чтобы пространство MUC поддерживалось, даже если в нем нет пользователя.

+0

Спасибо @Mickael - оцените ваш ответ здесь и на GitHub. Я буду копать дальше в этих точках, но моя точка зрения на вопрос GitHub была несколько иной: даже если я сделаю комнату постоянной и разрешаю подписку MUC, если пользователь присоединяется к комнате, его присутствие все еще отображается как ник, а не участник/модератор. – vikram17000

+0

Привет @ Mickaël Rémond, я прочитал сообщение в блоге MUC sub и черновик. Это так, что с MUC Sub, что вся идея заключается в том, что вместо того, чтобы пользователи присоединяются к комнате, они подписываются на нее? (Предполагая, что комната настойчивая)? В блоге он упоминает, что повторное присоединение к комнатам после того, как пользователь стал онлайн, очень тяжело для сети. Я правильно понял, что это больше не нужно? Спасибо заранее и извините за захват этой темы :) –

+0

другой вопрос, в проекте которого последний ejabberd реализует http://xmpp.org/extensions/xep-0369.html или ваш собственный https: //docs.ejabberd.im/разработчик/предлагаемые расширения/muc-sub /? Я заметил, что у них разные строфы. –

Смежные вопросы