XMPP组件存在

时间:2012-12-17 09:45:23

标签: components xmpp

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

但是,我在指示组件的存在时遇到问题。是真的,该组件需要响应< presence> stanzas本身?

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

此外,如果它崩溃(可能发生),它也无法发出“不可用”的状态指示。

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

1 个答案:

答案 0 :(得分:0)

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

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

  3. 当您的组件联机时,它应该向在步骤2中保存的每个订阅者发送状态。

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