如何从 ejabberd 服务器向多个客户端发送消息
Posted
技术标签:
【中文标题】如何从 ejabberd 服务器向多个客户端发送消息【英文标题】:How to send message to multiple clients from ejabberd server 【发布时间】:2017-05-03 16:29:08 【问题描述】:我刚刚开始使用 ejabberd 服务器。 我的问题是如何将消息从 ejabberd 服务器发送到多个客户端。我能够使用以下命令向单个客户端发送消息:
ejabberdctl send_message chat 192.168.33.50 user1@192.168.33.50 "subject" "message from server"
(其中 192.168.33.50 是运行 ejabberd 的机器的 IP 地址) 但是,我找不到一次发送给多个客户的方法。 我想方法是创建一个组,将用户添加到组并向组发送消息。
我尝试使用以下命令创建组并向其中添加用户:
ejabberdctl srg_create group1 192.168.33.50 "group1" "group1" "group1"
ejabberdctl srg_user_add user1 192.168.33.50 group1 192.168.33.50
ejabberdctl srg_user_add user2 192.168.33.50 group1 192.168.33.50
但是,当我尝试使用组名而不是用户名使用以下命令发送消息时,服务器没有发送任何消息:
ejabberdctl send_message chat 192.168.33.50 group1@192.168.33.50 "subject" "message from server"
所以我想知道如何实现从 ejabberd 服务器向多个客户端发送消息的用例?
【问题讨论】:
【参考方案1】:使用XEP-0033可以实现消息广播。正如 Mickaël 在这里回答的那样:ejabberd server broadcast message
但是,在 Ejabberd 商业版中,“start_mass_message”命令可以用于消息广播。
【讨论】:
感谢您的回答。但是我想知道如何使用/启用 XEP-0033 向多个客户端发送消息。我在某处读到需要在 ejabberd.yml 文件中为此启用“mod_multicast”。那是对的吗?另外我的基本问题是我应该运行什么命令来实现这一点(相当于“ejabberdctl send_message”,适用于单用户)。我查看了所有 ejabberdctl 命令,但没有找到?那么我是否需要以交互模式启动 ejabberd(使用“ejabberdctl live”)并以 XML 格式粘贴完整的消息?以上是关于如何从 ejabberd 服务器向多个客户端发送消息的主要内容,如果未能解决你的问题,请参考以下文章