向所有连接的客户端/资源发送 xmpp 消息


如何使用

Python库向所有连接的客户端/资源发送一条XMPP消息,例如:

XMPPPY,jabber.py,Jabberbot。任何其他命令行解决方案都很好。

到目前为止,我只能向一个客户端发送回显或一条消息。

目的是向所有连接的资源/客户端发送消息,而不是分组的资源/客户端。这可能由命令触发,但并非"真正"必要。

谢谢。

我不能给你一个具体的 python 例子,但我解释了逻辑是如何工作的。

当您将消息发送到裸 Jid 时,这取决于服务器软件或其路由方式的配置。一些服务器将消息发送到"最可用的资源",而某些服务器将其发送到所有资源。例如,Google Talk将其发送到所有资源。

如果您控制服务器软件,并且它允许您将消息路由到裸 Jid 到所有连接的资源,那么这将是最简单的方法。

当您的代码必须在任何服务器上工作时,您应该收集联系人的所有可用资源。您可以通过存在来获取它们,大多数库对此都有回调。然后,您可以循环将消息发送到完整的Jid(带有资源)。

我认为如果您为所有连接的资源设置相同的优先级,它会起作用,但我实际上没有尝试。

但是,在ejabberd中,有一个名为Mssage Carbon的模块可以为您执行此操作,此功能或属性也可以以"route.all-resource"的名义在明火中使用。

提示:如果使用了消息碳,XMPP 客户端库也应该支持它以使其工作。

最新更新