通过 smack 登录 XMPP 服务器时,我只发送用户 ID/密码组合。
服务器组件是否真的在完整的 JID 中使用“资源”参数?
例如 ali@someplace/resource
发送它有什么好处?
如果您有多个客户端登录,资源会很有用。
例如,如果我在家中和工作时使用不同的资源为每个连接登录,那么我可以为每个连接设置我的状态。也许我在家,所以工作已设置xa,而家已设置为聊天。
当您拥有异构客户端并且您可以使用功能 (XEP-0115) 来区分客户端可以使用的功能时,资源真的很有用。
XMPP 有 3 种类型的节:message、presence 和 iq。只有裸 JID 的消息和存在才会被路由到客户端。带有裸 JID 的 iq 节将由服务器处理。
我认为对于大多数 jabber 用户来说,主要优势是为同时连接的不同客户端设置不同的存在。将此与priority
存在节的子项结合起来,您可以控制未定向 (to="user@server") 消息(阅读:消息节!)的去向。如果有一个,您的服务器将选择一个具有最高优先级的客户端,如果有多个,我认为实际行为未指定。并且,仅当所选客户端的优先级为非负时,才会传递消息。