python - pyxmpp : quick tutorial for creating a muc client?

标签 python xmpp ejabberd multiuserchat

我正在尝试为我们的 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('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 并对事件使用react。请注意 roomManager 的“set_handlers()”,这很重要,否则不会调用回调..

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

相关文章:

ios - 在 JSQMessagesController 中发送消息

javascript - Stropejs 获取名册成功回调响应

titanium - Titanium Appcelerator 中的 Strope js?

erlang - 如何使用 Erlang 客户端将聊天消息存储在 Redis 中?

Python:从处理后的图像中创建视频

python - 在数据库中存储 700 万个键的 python 字典

python - 对 Python 字典的可切换点访问?

ios - 如何在iOS中使用XMPP消息的收据?

python - 返回集合的计数

android - 来自 code.samsung.com 的示例 Android XMPP 在连接时给出 KeyStoreException 和 NoSuchAlgorithmException