Dav*_*vid 7 python xmpp xmpppy
我想知道这里是否有人可以在以下场景中提供一些代码示例.我对使用xmpppy这样做特别感兴趣,因为我已经在我的应用程序中使用该库,但其他库也可以.不幸的是,xmpppy项目网站上没有任何样本.浏览专家/高级API文档,我无法弄清楚如何做到这一点,或者xmpppy不支持多用户聊天(MUC)?
通过邀请特定用户(比如2或3)创建MUC
向现有MUC发送消息(假设您知道它是MUC JID句柄或昵称)
查找XMPP服务器上的现有MUC,获取JID或昵称等.如果通过获取名单来完成,我们只想查找MUC,忽略用户.
我在这里找到了一个答案,但后来我可能不得不学习新的库API调用,并弄清楚如何进行上述场景,因为这个示例并没有涵盖所有这些:
我真的很想做一个负载生成器,它可以向MUC提供消息并创建包含许多参与者的大型MUC.我已经有了将消息传递给用户收件人的部分.
虽然我不知道那里的特定MUC接口,但xmpppy支持自定义消息,因此它支持整个XMPP.
要加入聊天,您需要发送在线状态, 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)
Run Code Online (Sandbox Code Playgroud)
至于创建新的聊天或在名册中查找,我手边没有现成的代码,但是以相同的方式编写它很容易,只需在XEP中查找所需的stranzas:
http://xmpp.org/extensions/xep-0045.html#createroom
http://xmpp.org/extensions/xep-0045.html#disco-rooms
http://xmpp.org/extensions/xep-0045.html#invite
小智 5
Xmpppy支持使用MUC服务,但支持非常基础,需要一些额外的代码来管理多个房间.
要"加入"MUC房间,您需要向JID广播您的存在.
conn.send(xmpp.Presence(to="%s/%s" % (room, nickname)))
Run Code Online (Sandbox Code Playgroud)
然后,为了发送消息,您使用"groupchat"消息类型将它们发送到房间JID.
msg = xmpp.protocol.Message(body=text)
msg.setTo(room)
msg.setType('groupchat')
conn.send(msg)
Run Code Online (Sandbox Code Playgroud)
至于您关于寻找MUC房间的问题,这将通过服务发现来完成.