SleekXMPP:获取 ClientXMPP JID 资源?

Posted

技术标签:

【中文标题】SleekXMPP:获取 ClientXMPP JID 资源?【英文标题】:SleekXMPP: Get ClientXMPP JID Resource? 【发布时间】:2012-08-10 18:37:28 【问题描述】:
import sleekxmpp

class SendMsgBot(sleekxmpp.ClientXMPP):
    def __init__(self, jid, password, recipient, wsh):
        print "jid is " + jid
        sleekxmpp.ClientXMPP.__init__(self, jid, password)
        print "self jid is " + self.jid

我按照他们的basic example 使用上面的 SleekXMPP。创建 SendMsgBot 时,我将 jid 提供为 user@domain.com/resource。但是,上面代码的输出给了我:

jid is user@domain.com/resource
self jid is user@domain.com

是否有可能找出一个ssloughxmpp.ClientXMPP 的资源?我知道资源正在被使用,因为数据在原始 XMPP 节中。我看到有一个JID class,但我不确定如何从ClientXMPP jid 到那个。

谢谢!

【问题讨论】:

【参考方案1】:

有一个self.boundjid 字段,它是会话绑定期间设置的JID。由于这是一个 JID 对象,您可以使用self.boundjid.resource

【讨论】:

另外,最好在会话开始后检查(即在'session_start' 事件处理程序中)。即使您最初请求特定资源,也不能保证您在绑定时会实际分配到该资源。 非常感谢您的项目和您在这里的回答!

以上是关于SleekXMPP:获取 ClientXMPP JID 资源?的主要内容,如果未能解决你的问题,请参考以下文章

SleekXMPP:将出席 ['muc']['jid'] 获取到每条消息的消息处理程序

Sleekxmpp 管理节

如何使用 SleekXMPP 或 python 处理 XMPP 订阅我一般

通过 SleekXMPP 发送 facebook 消息

Sleekxmpp:使用多个自定义节

SleekXMPP 自动接受所有聊天室邀请