0

たとえば、Python ライブラリを使用して、接続されているすべてのクライアント/リソースに 1 つの XMPP メッセージを送信するにはどうすればよいですか。

xmpppy、jabber.py、jabberbot。他のコマンドライン ソリューションは問題ありません。

これまでのところ、エコーまたは単一のメッセージを 1 つのクライアントにしか送信できませんでした。

目的は、グループ化されているのではなく、接続されているすべてのリソース/クライアントにメッセージを送信することです。これはコマンドによってトリガーされる場合がありますが、「実際には」必要ではありません。

ありがとうございました。

4

2 に答える 2

0

具体的な Python の例を挙げることはできませんが、ロジックがどのように機能するかを説明します。

裸の Jid にメッセージを送信する場合、それはサーバー ソフトウェアまたはルーティング方法に依存します。メッセージを「最も利用可能なリソース」に送信するサーバーもあれば、すべてのリソースに送信するサーバーもあります。たとえば、Google トークはそれをすべてのリソースに送信します。

サーバー ソフトウェアを制御し、メッセージを裸の Jid に接続されたすべてのリソースにルーティングできる場合、これが最も簡単な方法です。

コードが任意のサーバーで動作する必要がある場合は、連絡先の利用可能なすべてのリソースを収集する必要があります。プレゼンスでそれらを取得します。ほとんどのライブラリには、これに対するコールバックがあります。次に、ループ内でメッセージを完全な Jid (リソース付き) に送信できます。

于 2012-12-06T08:27:26.120 に答える
0

接続されているすべてのリソースに同じ優先度を設定すればうまくいくと思いますが、実際には試していません。

ただし、ejabberd には、これを行うMssage Carbonという名前のモジュールがあります。この機能またはプロパティは、「route.all-resource」という名前でオープンファイアでも利用できます。

ヒント: メッセージ カーボンが使用されている場合、XMPP クライアント ライブラリはこれをサポートして動作させる必要があります。

于 2016-12-07T06:33:40.037 に答える