Python pyxmpp:创建muc客户端的快速教程?

Python pyxmpp:创建muc客户端的快速教程?,python,xmpp,ejabberd,multiuserchat,Python,Xmpp,Ejabberd,Multiuserchat,我正在尝试为我们的ejabberd集群编写一个快速负载测试脚本,它只需登录聊天室,发布几条随机消息,然后退出 我们曾尝试使用tsung进行此特定测试,但根据作者的说法,muc功能没有进入此版本 pyxmpp似乎有这个功能,但如果我能想出如何使它工作,那就糟了。这里希望有人能快速解释如何构建客户机并加入/发布muc 谢谢 嘿,我试着做同样的事情时,有几次被你的问题绊倒了。 以下是我的答案: 作为一个快速启动,您所要做的就是导入MUC内容 from pyxmpp.jabber.muc import

我正在尝试为我们的ejabberd集群编写一个快速负载测试脚本,它只需登录聊天室,发布几条随机消息,然后退出

我们曾尝试使用tsung进行此特定测试,但根据作者的说法,muc功能没有进入此版本

pyxmpp似乎有这个功能,但如果我能想出如何使它工作,那就糟了。这里希望有人能快速解释如何构建客户机并加入/发布muc


谢谢

嘿,我试着做同样的事情时,有几次被你的问题绊倒了。 以下是我的答案:

作为一个快速启动,您所要做的就是导入MUC内容

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\u message(“发送此消息”)

要做这些事情,从MucRoomHandler继承并对事件做出反应。请注意roomManager的“set_handlers()”,这很重要,否则将不会调用回调