【问题标题】:Check duplicate JID when connecting to XMPP连接 XMPP 时检查重复的 JID
【发布时间】:2021-06-17 11:45:52
【问题描述】:

我有一个专用 XMPP 网络,它仅用于大型系统的组件之间的自动通信。每个组件都连接一个唯一的 JID,即<user>@<server>/<resource>

有时会发生组件未正确关闭但仍连接到服务器的情况。当这种情况发生并且我启动一个新实例时,两个具有相同 JID 的客户端尝试连接,他们似乎在使用该连接进行 ping ping:新客户端窃取旧客户端的连接,然后重新连接并从旧客户端窃取连接新的等等。

我能否以某种方式检查 JID 是否在组件发送其存在之前连接?正如我正确理解的那样,服务器仅在收到存在后才发送其他客户端的存在,不是吗?仅仅请求名册似乎没有帮助,因为那里没有存在信息......

编辑:我在 Python 中使用 SleekXMPP,如果有帮助的话。

【问题讨论】:

    标签: xmpp


    【解决方案1】:

    当您使用固定资源时会发生“乒乓”,这是您不应该做的事情。如果您的设计依赖于此,那么您应该重新考虑它。相反,只需让服务器为您分配一个资源,或者在客户端生成一个随机资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      相关资源
      最近更新 更多