使用xmpppy时完整的JID值在哪里?

1 投票
2 回答
1160 浏览
提问于 2025-04-15 20:05

我在使用 xmpppy 库连接并认证 Jabber 服务器后,在哪里可以找到完整的 JID 值?

我需要这个完整的 JID 来进行后续的 Iq 调用。如果我只提供简单的 JID(比如 user@domain.com),就会出现以下错误:

如果设置了,'from' 属性必须设置为用户的完整 JID

我已经查看了 在线 API,还看了一些源代码,但还是找不到。

完整的 JID 看起来像这样: user@domain.com/resource

2 个回答

1

我也没看到JID被直接存储,不过在auth的源代码中,第213行我看到了

self._User,self._Password,self._Resource=user,password,resource

这里的self是我们正在进行身份验证的Client实例;所以也许你可以从这里获取这些信息,然后自己构建一个JID

2

使用没有下划线的版本:

c = xmpp.client.Client(...)
# connect
jid = xmpp.JID(node=c.User, domain=c.Server, resource=c.Resource)

不过,其实你不需要设置发件地址。服务器会为你处理所有你发送的内容。

撰写回答