使用 xmpppy 时完整的 JID 值在哪里?
Posted
技术标签:
【中文标题】使用 xmpppy 时完整的 JID 值在哪里?【英文标题】:Where is the full JID value when using xmpppy? 【发布时间】:2010-03-06 15:37:21 【问题描述】:在使用 xmpppy 库时,在连接 Jabber 服务器并对其进行身份验证后,我在哪里可以找到完整的 JID 值?
我需要完整的 JID 以便随后对服务器进行 Iq
调用。指定裸 JID (user@domain.com) 会导致以下错误:
如果设置,'from' 属性必须设置为用户的完整 JID
我已经阅读了online API 并查看了一些源代码,但仍然找不到。
完整的 JID 如下所示:user@domain.com/resource
【问题讨论】:
【参考方案1】:使用非下划线版本:
c = xmpp.client.Client(...)
# connect
jid = xmpp.JID(node=c.User, domain=c.Server, resource=c.Resource)
但是,不需要设置发件人地址。服务器将为您发送的所有节执行此操作。
【讨论】:
【参考方案2】:我也没有看到 JID 是这样存储的,但是在 auth's sources 第 213 行,我看到了
self._User,self._Password,self._Resource=user,password,resource
其中self
是我们正在验证的Client
的实例;所以也许您可以恢复此信息并从中建立自己的JID?
【讨论】:
@Alex 可能有用,让我试试。感谢您不厌其烦地回答这个问题。 @Philip,不客气,让我们知道你的效果如何!以上是关于使用 xmpppy 时完整的 JID 值在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.IllegalArgumentException:提供的用户 ID 不是完整的 JID (Smack)