【问题标题】:pyxmpp: quick tutorial for creating a muc client?pyxmpp:创建 muc 客户端的快速教程?
【发布时间】:2011-01-22 18:30:07
【问题描述】:

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

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

pyxmpp 似乎有这个功能,但如果我能弄清楚如何使它工作,那就太糟糕了。希望有人能快速解释如何构建客户端并加入/发布到 muc。

谢谢!

【问题讨论】:

    标签: python xmpp ejabberd multiuserchat


    【解决方案1】:

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

    使用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()”,这很重要,否则回调将不会被调用..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-05
      • 2016-05-16
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 2016-08-13
      相关资源
      最近更新 更多