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

时间:2012-12-05 23:44:48

标签: python xmpp message

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

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

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

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

谢谢。

2 个答案:

答案 0 :(得分:0)

我不能给你一个特定的python示例,但我解释了逻辑是如何工作的。

当您向裸Jid发送消息时,它取决于服务器软件或配置如何路由。某些服务器将消息发送到“最可用资源”,并且某些服务器将其发送到所有资源。例如。 Google Talk会将其发送到所有资源。

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

当您的代码必须在任何服务器上运行时,您应该收集联系人的所有可用资源。你得到它们的存在,大多数库都有回调。然后,您可以在循环中将消息发送到完整的Jids(带有资源)。

答案 1 :(得分:0)

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

但是在ejabberd中有一个名为Mssage Carbon的模块可以为您执行此操作,此功能或属性也可以在名为&#34; route.all-resource&#34;的开火中使用。< / p>

提示:如果使用Message carbons,XMPP客户端库也应该支持它以使其正常工作。