我想知道这里是否有人可以在以下情况下提供一些代码示例。我特别有兴趣使用XMPPPY来执行此操作,因为我已经为我的应用程序使用了库,但是其他库也可以。不幸的是,XMPPPY项目网站上没有任何样本。浏览专家/高级API文档,我不知道该怎么做,还是XMPPPY不支持多用户聊天(MUC)?

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

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

  • 查找XMPP服务器上的现有MUC,获取JID或昵称等。

我在这里找到了一个答案,但是然后我可能必须学习新的库API呼叫,并弄清楚如何做我上述方案,因为该示例并不能涵盖所有这些方案:

PYXMPP:创建MUC客户端的快速教程?

我真的想做一个负载生成器,将消息泵送到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

http://xmpp.org/extensions/xep-0045.html#disco-rooms

http://xmpp.org/extensions/xep-0045.html#invite

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top