首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python和XMPP创建MUC并向现有的MUC发送消息

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

Stack Overflow用户
提问于 2010-08-20 05:20:42
回答 2查看 6.8K关注 0票数 7

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

  • 通过邀请特定用户(例如2或3)
  • 向现有的MUC发送消息(假设您知道它是MUC句柄或昵称),
  • 在XMPP服务器上查找现有的MUC,获取JID或昵称等。如果这是通过获取名册来完成的,我们只想查找MUCs,而忽略用户。

我在这里找到了某种答案,但我可能需要学习新的库API调用,并弄清楚如何执行上述场景,因为这个示例并不涵盖所有这些场景:

pyxmpp: quick tutorial for creating a muc client?

我真的希望做一个负载发生器,它可以向MUCs发送消息,并创建包含许多参与者的大型MUCs。我已经准备好向用户发送消息了。

EN

回答 2

Stack Overflow用户

发布于 2010-08-20 07:09:49

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

若要加入聊天,您需要发送存在搁浅,conn.send(xmpp.Presence(to='{0}/{1}'.format(room, nick)))

若要发送聊天消息:

代码语言:javascript
复制
    stranza = "<message to='{0}' type='groupchat'><body>{1}</body></message>".format(room, text)
    conn.send(stranza)

至于创建新的聊天或在名册中查找它,我手头没有现成的代码,但用同样的方式编写很容易,只需在XEP中查找所需的绞线:

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
EN

Stack Overflow用户

发布于 2010-08-23 10:27:58

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

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

代码语言:javascript
复制
conn.send(xmpp.Presence(to="%s/%s" % (room, nickname)))

然后,使用“groupchat”消息类型将消息发送到房间JID。

代码语言:javascript
复制
msg = xmpp.protocol.Message(body=text)
msg.setTo(room)
msg.setType('groupchat')
conn.send(msg)

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3528373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档