6

チャット ルームにログインし、いくつかのランダム メッセージを投稿して終了するだけの、ejabberd クラスタ用の簡単な負荷テスト スクリプトを作成しようとしています。

この特定のテストを tsung で試みましたが、作成者によると、muc 機能はこのリリースに含まれていませんでした。

pyxmpp にはこの機能があるようですが、それを機能させる方法を理解できれば大変です。ここでは、誰かがクライアントを構築し、muc に参加/投稿する方法について簡単に説明してくれることを願っています。

ありがとう!

4

1 に答える 1

6

同じことを試しているときに、あなたの質問に何度か出くわしました。これが私の答えです:

http://pyxmpp.jajcus.net/svn/pyxmpp/trunk/examples/echobot.pyをクイックスタートとして使用して、MUC-Stuff をインポートするだけです。

from pyxmpp.jabber.muc import MucRoomState, MucRoomManager

クライアントが接続されると、ルームに接続できます。

def session_started(self): 
    """Handle session started event. May be overriden in derived classes. 
    This one requests the user's roster and sends the initial presence.""" 
    print u'SESSION STARTED'
    self.request_roster() 
    p=Presence() 
    self.stream.send(p) 
    print u'ConnectToParty'
    self.connectToMUC()

def connectToMUC(self):
    self.roomManager = MucRoomManager(self.stream);
    self.roomHandler = MucRoomHandler()
    self.roomState = self.roomManager.join(
        room=JID('room@conference.server.domain'),
        nick='PartyBot',
        handler=self.roomHandler, 
        history_maxchars=0,
        password = None)
    self.roomManager.set_handlers()

メッセージを送信するには、self.roomState.send_message("Sending this Message") を呼び出すだけです。

何かを行うには、MucRoomHandler から継承し、イベントに反応します。ただし、roomManager への「set_handlers()」に注意してください。これは重要です。そうしないと、コールバックが呼び出されません。

于 2010-07-26T05:17:35.733 に答える