2012-12-05 148 views
0

我怎麼能發送一個XMPP消息使用Python庫例如,所有連接的客戶端/資源:發送XMPP消息到所有連接的客戶端/資源

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

到目前爲止,我只能夠向一個客戶端發送回顯或單個消息。

其目的是向連接的所有資源/客戶端發送消息,而不是分組。 這可能是由一個命令觸發的,但不是'真的'必需的。

謝謝。

+0

是否要將其發送給所有連接的客戶端或特定客戶端的所有會話(即共享相同基本JID的所有客戶端)? – Robin

+0

我想將消息發送給所有目前的客戶端。所有連接的客戶端都會在場。 – user1818994

回答

0

我不能給你一個特定的python例子,但我解釋了邏輯是如何工作的。

當您發送消息到裸露的Jid然後它取決於服務器軟件或配置如何路由。一些服務器將消息發送到「最可用資源」,一些服務器將其發送到所有資源。例如。 Google Talk將其發送到所有資源。

如果您控制服務器軟件,並且它允許您將消息路由到裸露的Jid到所有連接的資源,那麼這將是最簡單的方法。

當您的代碼必須在任何服務器上工作時,您應該收集您的聯繫人的所有可用資源。你得到他們的存在,大多數圖書館有這個回調。然後你可以發送消息到完整的Jids(有資源)循環。

0

我想如果你爲所有連接的資源設置相同的優先級,它會工作,但我沒有實際嘗試。

但是在ejabberd中有一個名爲Mssage Carbon的模塊可以爲你做這個,這個特性或者屬性也可以在open.fire中以「route.all-resource」的名義提供。

提示:如果使用消息碳,XMPP客戶端庫也應該支持這一點,以使其工作。

相關問題