xmpp - 如何使用XMPP协议(protocol)向群组/用户发送系统消息?

标签 xmpp ejabberd

使用 XMPP 协议(protocol)时向组/用户发送系统消息的最佳实践是什么?该组中的所有用户都应该收到该消息。 我怎样才能实现它?

可能有用的解决方案:

  1. 公告 - 我遇到了 announce和更多 具体来说this module
  2. 发布-订阅 http://www.xmpp.org/extensions/xep-0060.html
  3. 总有 创建将发送消息的管理员用户的选项。

提前致谢。

最佳答案

最好的方法取决于您的限制,尤其是在您控制客户端的情况下。例如,如果您使用不是您开发的客户端,它可能无法正常渲染 pubsub 消息。

要考虑的第二件事是如何定义组。用户是否注册警报?在这种情况下,似乎与 pubsub 情况匹配。否则,如果组不太大,您可以使用管理员用户发送到您想要的用户列表。您甚至可以使用 XEP-0033: Extended Stanza Addressing 向多个用户发送一条消息(有时称为“多播”)。

mod_announce 只能针对所有用户或所有在线用户,因此它似乎不符合您在“组”方面的需求。

我在演讲中解释了大部分选项(视频和幻灯片):https://blog.process-one.net/implementing-state-of-the-art-one-to-many-chat-services-with-ejabberd-ejabberd-workshop-1/

它的范围更广,因为它不仅涵盖广播,还涵盖群聊,但它应该有助于澄清您的选择。

关于xmpp - 如何使用XMPP协议(protocol)向群组/用户发送系统消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35884562/

相关文章:

ssl - 麦卡伯 : Unable to connect to the server (Ejabberd)

android - aSmack 即服务

java - intent 不能放入 XMPPTCPConnection 类型的额外对象

java - 如何为 gtalk 创建一个搜索在线帮助 Java 的机器人?

iphone - ejabberd 和推送通知

linux - ejabberd 'make' 到 "cannot run compiled C program"

ejabberd - 将 contrib 模块安装到 ejabberd 时出错

objective-c - 需要有关使用 xep-0184 的帮助

java - Smack XMPP 自定义扩展未完全到达

xmpp ejabberd - 查询用户状态