JID对比实录:一个地址为何分两种

做JID对比,最容易看漏的不是软件功能,而是裸JID和完整JID的差别。下面用一个可复现的登录案例,还原账号创建、设备上线、消息路由到排错的全过程,并顺手讲清JID与邮箱、普通用户名到底哪里像、哪里完全不同。

问:这次拿什么做JID对比?

先说结论:JID不是聊天昵称,而是XMPP网络里的地址。为避免拿真实账号举例,这次使用保留域名构造测试地址:[email protected]。它属于裸JID,只包含本地部分和域名,适合标识一个账号。

同一账号在电脑端登录后,可以出现[email protected]/desktop;手机端则可能是[email protected]/phone。斜杠后面叫resource,也就是资源标识。两条完整JID看着像两个账号,其实都归到同一个裸JID下面。

问:消息发给两种JID,结果有何不同?

把消息发给[email protected],通常由服务器依据在线状态、客户端优先级等规则选择资源投递,具体行为还受服务器和客户端实现影响。日常聊天一般使用这种写法,换手机或电脑不会因为resource变化而找不到人。

若明确发给[email protected]/desktop,目标就具体到了桌面资源。这个资源一旦离线,消息可能无法按预期送达。实测排错时它很有用,普通联系人列表却没必要保存完整JID。

想要完整资源?

会员专享,海量内容

立即查看 →

问:JID与邮箱、用户名怎么比?

JID和邮箱都长得像“名称@域名”,而且域名决定由哪台服务器负责,所以初看很像。但邮箱通过邮件协议收发信件,JID主要用于XMPP即时通信、群聊和状态管理,两者不能直接互发。

普通用户名往往只在一个网站内部有效,例如xiaolin;JID把服务器域名也写进地址,因此不同服务器上的用户可以区分并进行联邦通信。昵称更不可靠,同一个群里可以改名,也可能重名,不能拿来替代JID做身份核对。

问:案例里最值得记住什么?

这次JID对比的关键只有一句:认人看裸JID,认设备看完整JID。添加联系人、设置权限和核对账号时盯住@前后两段;分析多端登录、定向路由时,再检查斜杠后的resource。

还有个细节别忽略:实际JID应由客户端和服务器按XMPP规范处理,大小写、国际字符及转义不能凭肉眼随便改。复制地址比手敲稳妥,尤其不要把显示昵称误当成账号地址。

常见问题

裸JID和完整JID哪个更常用?

联系人、权限和日常发消息通常使用裸JID;完整JID主要用于识别某次具体登录或某台设备。

JID后面的resource能固定吗?

部分客户端允许设置,但也可能自动生成。它会随登录会话改变,不适合作为长期联系人地址。

JID和邮箱地址相同就能收到邮件吗?

不能据此判断。地址外形相似不代表该域名同时提供邮件服务,必须另查邮箱配置。

获取完整内容

加入会员,海量资源任你看

立即进入 →