谁真正使用完整的 JID?
Posted
技术标签:
【中文标题】谁真正使用完整的 JID?【英文标题】:Who actually uses a full JID? 【发布时间】:2009-05-12 04:37:41 【问题描述】:当通过 smack 登录 XMPP 服务器时,我只发送用户 ID/密码组合。
服务器组件是否真的在完整的 JID 中使用“resource”参数?
例如ali@someplace/资源
发送有什么好处?
【问题讨论】:
【参考方案1】:如果您有多个客户端登录,资源会很有用。
例如,如果我在家中和工作时使用不同的资源为每个连接登录,那么我可以为每个连接设置我的状态。也许我在家,所以工作设置为xa,而家设置为聊天。
当您拥有异构客户端并且您可以使用功能 (XEP-0115) 来区分客户端可以使用的功能时,资源会非常有用。
【讨论】:
【参考方案2】:XMPP 有 3 种类型的节:message、presence 和 iq。只有裸 JID 的消息和存在才会被路由到客户端。带有裸 JID 的 iq 节将由服务器处理。
【讨论】:
【参考方案3】:我认为对于大多数 jabber 用户来说,主要优势是为同时连接的不同客户端设置不同的存在。将其与存在节的priority
子项结合使用,您可以控制未定向(to="user@server")消息(阅读:消息节!)的去向。如果有一个,您的服务器将选择一个具有最高优先级的客户端,如果有多个,我认为实际行为未指定。而且,仅当所选客户端的优先级为非负数时,才会传递消息。
【讨论】:
以上是关于谁真正使用完整的 JID?的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.IllegalArgumentException:提供的用户 ID 不是完整的 JID (Smack)