如何使用Python和XMPP创建MUC并将消息发送给现有MUC
题
我想知道这里是否有人可以在以下情况下提供一些代码示例。我特别有兴趣使用XMPPPY来执行此操作,因为我已经为我的应用程序使用了库,但是其他库也可以。不幸的是,XMPPPY项目网站上没有任何样本。浏览专家/高级API文档,我不知道该怎么做,还是XMPPPY不支持多用户聊天(MUC)?
通过邀请特定用户(例如2或3)来创建MUC
将消息发送到现有的MUC(假设您知道它是MUC JID句柄或昵称)
查找XMPP服务器上的现有MUC,获取JID或昵称等。
我在这里找到了一个答案,但是然后我可能必须学习新的库API呼叫,并弄清楚如何做我上述方案,因为该示例并不能涵盖所有这些方案:
我真的想做一个负载生成器,将消息泵送到MUC并与许多参与者创建大型MUC。我已经有了向用户收件人泵送消息的部分。
没有正确的解决方案
其他提示
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房间的问题,这将通过服务发现来完成。
尽管我不知道那里的特定MUC接口,但XMPPPY支持自定义消息,因此它支持整个XMPP。
要加入聊天,您需要发送存在stranza, conn.send(xmpp.Presence(to='{0}/{1}'.format(room, nick)))
发送一条消息进行聊天:
stranza = "<message to='{0}' type='groupchat'><body>{1}</body></message>".format(room, text)
conn.send(stranza)
至于创建新的聊天或在花名册中查找它,我没有准备好的代码,但是以相同的方式编写很容易,只需在xeps中查找所需的stranzas:
http://xmpp.org/extensions/xep-0045.html#createroom