SleekXMPP Muc房间列表和发现

2024-09-27 18:10:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我是XMPP的新手:)我一直在和Ejabberd和sleekXMPP合作。 我的问题是如何用sleekXMPP列出在线客房?在

谢谢你


Tags: xmpp客房新手ejabberdsleekxmpp
2条回答

我也为此挣扎了一段时间。登记室不是MUC的一部分(xep_0045),而是服务发现的一部分(xep_0030)。在

有些文档是here,但仍然需要一些实验才能找到“disco碜u items”数组键。注意,“迭代器”参数只有在同时加载XEP-0059时才有效。在

其工作原理如下:

  1. 确保加载了0030:

    xmpp.register_plugin('xep_0030')
    
  2. 使用它:(在我的例子中,这是扩展的类的start()方法的一部分sleekxmpp.ClientXMPP)在

    result = self['xep_0030'].get_items(jid='conference.your.xmpp.server.com', iterator=True)
    
    for room in result['disco_items']:
        print "Found room %s, jid is %s" % (room, room['jid'])
    

Akom有一个很好的方法,但就我个人而言,iterator参数有问题。在

有关服务发现实施的完整示例,请访问:

https://github.com/fritzy/SleekXMPP/blob/develop/examples/disco_browser.py

有了这些功能,您只需执行以下操作,就可以获得XMPP服务器的身份、信息和功能:

items = self['xep_0030'].get_items(jid='conference-server.com', node='', block=True)

然后:

^{pr2}$

相关问题 更多 >

    热门问题