0

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

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

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

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

谢谢你。

4

2 回答 2

0

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

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

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

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

于 2012-12-06T08:27:26.120 回答
0

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

但是在 ejabberd 中有一个名为Mssage Carbon的模块可以为您执行此操作,此功能或属性也可以在“route.all-resource”的名称下公开使用。

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

于 2016-12-07T06:33:40.037 回答