如何使用Python和XMPP创建MUC并向现有MUC发送消息

如何使用Python和XMPP创建MUC并向现有MUC发送消息,python,xmpp,xmpppy,Python,Xmpp,Xmpppy,我想知道这里是否有人可以提供以下场景的一些代码示例。我对使用xmpppy来实现这一点特别感兴趣,因为我已经在为我的应用程序使用库,但其他库也可以。不幸的是,xmpppy项目网站上没有关于这方面的任何示例。浏览专家/高级API文档时,我不知道该如何做,或者xmpppy不支持多用户聊天(MUC) 通过邀请特定用户(比如2或3)创建MUC 向现有MUC发送消息(假设您知道它是MUC JID句柄或昵称) 在XMPP服务器上查找现有的MUC,获取JID或昵称,等等。如果这是通过获取花名册来完成的,我们只

我想知道这里是否有人可以提供以下场景的一些代码示例。我对使用xmpppy来实现这一点特别感兴趣,因为我已经在为我的应用程序使用库,但其他库也可以。不幸的是,xmpppy项目网站上没有关于这方面的任何示例。浏览专家/高级API文档时,我不知道该如何做,或者xmpppy不支持多用户聊天(MUC)

  • 通过邀请特定用户(比如2或3)创建MUC

  • 向现有MUC发送消息(假设您知道它是MUC JID句柄或昵称)

  • 在XMPP服务器上查找现有的MUC,获取JID或昵称,等等。如果这是通过获取花名册来完成的,我们只想查找MUC,而忽略用户

我在这里找到了一个答案,但随后我可能必须学习新的库API调用,并找出如何执行上述场景,因为此示例并未涵盖所有场景:


我真的想做一个负载生成器,将消息泵送到MUC,并创建有许多参与者的大型MUC。我已经准备好了向用户收件人发送消息的部分。

虽然我不知道具体的MUC接口,但XMPPY支持自定义消息,所以它支持整个XMPP

若要加入聊天,您需要发送presence stranza,
conn.send(xmpp.presence(To='{0}/{1}'。格式(room,nick))

要向聊天室发送消息,请执行以下操作:

    stranza = "<message to='{0}' type='groupchat'><body>{1}</body></message>".format(room, text)
    conn.send(stranza)
stranza=“{1}”。格式(房间,文本)
康涅狄格州森德(斯特拉扎)
至于创建新聊天室或在花名册中查找聊天室,我手头没有现成的代码,但以同样的方式编写聊天室很容易,只需在XEPs中查找所需的Stranza:


Xmpppy确实支持使用MUC服务,但这种支持非常基本,需要一些额外的代码来管理多个房间

要“加入”MUC房间,你需要向JID广播你的存在

conn.send(xmpp.Presence(to="%s/%s" % (room, nickname)))
然后,要发送消息,请使用“groupchat”消息类型将消息发送到房间JID

msg = xmpp.protocol.Message(body=text)
msg.setTo(room)
msg.setType('groupchat')
conn.send(msg)

至于您关于查找MUC房间的问题,将通过服务发现完成。

是的,您使用发现是正确的,我们可以找到房间列表,但如何查找?