我正在尝试为我们的ejabberd集群编写一个快速的负载测试脚本,该脚本仅登录到聊天室,发布一些随机消息,然后退出。

我们曾尝试用tsung进行此特定测试,但根据作者的说法,muc功能并未纳入该版本中。

pyxmpp似乎具有此功能,但是如果我能弄清楚如何使它工作,我会很惊讶。希望有人对如何构建客户端以及如何加入/发布muc有一个快速的解释。

谢谢!

最佳答案

嘿,我在尝试同样的事情时偶然发现了您的问题几次。
这是我的答案:

使用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('[email protected]'),
        nick='PartyBot',
        handler=self.roomHandler,
        history_maxchars=0,
        password = None)
    self.roomManager.set_handlers()

要发送消息,您所要做的就是调用self.roomState.send_message(“发送此消息”)

要进行操作,请从MucRoomHandler继承并对事件使用react。注意,请注意roomManager的“set_handlers()”,这一点很重要,否则将不会调用回调。

关于python - pyxmpp : quick tutorial for creating a muc client?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2364039/

10-13 09:31