使用 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 值在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xmpppy 向 jabber 客户端发送消息?

谁真正使用完整的 JID?

python禁用错误输出

java.lang.IllegalArgumentException:提供的用户 ID 不是完整的 JID (Smack)

汇编中变量的旧值在哪里?

xmpp bot 接受新朋友?