7

ここで誰かが次のシナリオでいくつかのコード サンプルを提供できるかどうか疑問に思っていました。私はすでにアプリのライブラリを使用しているので、これを行うために xmpppy を使用することに特に興味がありますが、他のライブラリも問題ありません。xmpppy プロジェクトの Web サイトにこれに関するサンプルがないのは残念です。エキスパート/高度な API ドキュメントを参照しても、その方法がわかりませんでしたか、それともマルチユーザー チャット (MUC) は xmpppy でサポートされていませんか?

  • 特定のユーザーを招待して MUC を作成する (たとえば 2 人または 3 人)

  • メッセージを既存の MUC に送信します (MUC JID ハンドルまたはニックネームであることがわかっていると仮定します)。

  • XMPP サーバーで既存の MUC を検索し、JID やニックネームなどを取得します。名簿を取得してこれを行う場合は、ユーザーを無視して MUC のみを検索します。

ここである種の答えを見つけましたが、このサンプルではすべてをカバーしていないため、おそらく新しいライブラリ API 呼び出しを学習し、上記のシナリオを実行する方法を理解する必要があります。

pyxmpp: muc クライアントを作成するための簡単なチュートリアル?

MUC にメッセージを送信し、多数の参加者を含む大きな MUC を作成するロード ジェネレーターを実際に実行したいと考えています。ユーザーの受信者にメッセージを送信するための部分は既に用意しています。

4

2 に答える 2

5

そこにある特定の MUC インターフェイスについては知りませんが、xmpppy はカスタム メッセージをサポートしているため、XMPP 全体をサポートしています。

チャットに参加するには、プレゼンス トランザを送信する必要があります。conn.send(xmpp.Presence(to='{0}/{1}'.format(room, nick)))

チャットにメッセージを送信するには:

    stranza = "<message to='{0}' type='groupchat'><body>{1}</body></message>".format(room, text)
    conn.send(stranza)

新しいチャットの作成や名簿での検索に関しては、手元に準備が整ったコードはありませんが、同じ方法で簡単に記述できます。XEP で必要なストランザを検索するだけです。

http://xmpp.org/extensions/xep-0045.html#createroom

http://xmpp.org/extensions/xep-0045.html#disco-rooms

http://xmpp.org/extensions/xep-0045.html#invite

于 2010-08-20T07:09:49.083 に答える
5

Xmpppy は MUC サービスの使用をサポートしていますが、サポートは非​​常に基本的なものであり、複数の部屋を管理するには追加のコードが必要になります。

MUC ルームに「参加」するには、プレゼンスを JID にブロードキャストする必要があります。

conn.send(xmpp.Presence(to="%s/%s" % (room, nickname)))

メッセージを送信するには、「グループチャット」メッセージ タイプを使用してルーム JID に送信します。

msg = xmpp.protocol.Message(body=text)
msg.setTo(room)
msg.setType('groupchat')
conn.send(msg)

MUC ルームの検索に関する質問については、サービス ディスカバリを介して行います。

于 2010-08-23T10:27:58.220 に答える