资源之间如何共享Presence?

How to share Presence among Resources?

我正在开发一个跨平台应用程序,它结合了 XMPP (ejabberd)。如何在资源之间共享状态?

请考虑以下场景:

用户 A 登录到三个设备:PC、Android 和 iOS。用户 A 使用 Android,将他的状态设置为 'away'。如何将其他资源设置(同步)到 'away'(并发送状态节)?

我希望使用 XMPP 协议/ejabberd 服务器来解决这个问题;而不是通过向客户端添加逻辑。

您真的不需要在您的资源之间同步状态。您需要的是其他客户的显示规则。

例如,如果用户拥有三种不同的资源,您可以决定:

  • 显示三个中最可用的资源。
  • 显示最近的一个。
  • 显示优先级最高的。

因此,您不要通过网络同步它们,因为这样会失去精度。根据您的客户端应用程序的目标,简单地定义您的状态显示规则。