1

我刚刚发现 XMPP 有多棒,我正在尝试将多人游戏开发为 XMPP 组件 (XEP-0114)。

但是,我无法指示组件的存在。组件是否需要响应 <presence> 节本身?

当然它可以做到这一点,但如果它因维护而停机则不能。此外,组件在备份时通知谁?它当然可以在数据库中注册所有感兴趣的用户,但如果它停机五分钟,那么该列表肯定会改变。以前不感兴趣的用户现在会感兴趣,感兴趣的用户将不再感兴趣。

此外,如果它崩溃(可能发生),它不能发送“不可用”存在指示。

不能以某种方式将这项工作卸载到服务器上吗?

4

1 回答 1

0
  1. 当您的组件收到<presence type='probe'/>时,它应该回复您的组件当前的存在。

  2. 当您的组件收到<presence type='subscribe'/>时,它应该将from地址保存在某种存储机制中,然后回复<presence type='subscribed'/>

  3. 当您的组件上线时,它应该向步骤 2 中保存的每个订阅者发送出席信息。

始终确保在您的组件发送的所有节中都放置一个to地址和一个地址。from如果您习惯于编写客户端,您可能会在第 3 步中忘记这一点。

于 2012-12-27T07:19:33.363 回答