![XMPP 中的“优先级”和“资源”是什么?](https://linux22.com/image/1510213/XMPP%20%E4%B8%AD%E7%9A%84%E2%80%9C%E4%BC%98%E5%85%88%E7%BA%A7%E2%80%9D%E5%92%8C%E2%80%9C%E8%B5%84%E6%BA%90%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我不知道这些名称在英文中是否正确,但西班牙语中是“Prioridad”和“Recurso”。当我想配置 XMPP 客户端时,我会看到这些名称。在“优先级”中,我看到我必须输入一个数字,我猜想(我不确定)根据该数字,消息将发送到数字最高的帐户,还是相反?在“资源”中,我没有理论,例如,当我在 Thunderbird 上配置我的 Jabber 帐户时,默认情况下资源是“Thunderbird”,而在 ChatSecure 上时,资源是“ChatSecure-12345678”[1] 我没有在网上找到有关此内容的任何文档。我在哪里可以阅读有关此内容的信息?
[1] “12345678”是一组随机的数字和字母,始终为 8,并且与其他帐户不同(这仅在聊天安全)
答案1
当您与多个客户端(具有相同的 JID)在线时,优先级和资源是相关的。
假设您的 JID 是[email protected]
,并且您与两个客户端在线:
客户端 1
优先级:5
资源:home
客户端 2
优先级:7
资源:mobile
如果有人向 发送消息[email protected]/home
,
您将在客户端 1 上收到该消息。
如果有人向 发送消息[email protected]/mobile
,
您将在客户端 2 上收到该消息。
如果有人向 发送一条消息[email protected]
,
您将在客户端 2 上收到该消息,因为它具有更高的优先级。
总结:资源允许发送者识别/定位特定客户端,并且优先级决定在发送者没有定位特定资源的情况下将使用哪个客户端。
优先级可以从 到-128
。127
如果您设置了负优先级(例如-1
),则此客户端将永远不会收到消息,除非发送者明确将其发送到该客户端资源。如果客户端具有相同的正优先级,则所有客户端都应该收到该消息。
一些客户端会将随机字符串附加到资源中(可能是 ChatSecure 所做的),以使完整的 JID 变得不可预测,这可能与安全原因相关。