我刚刚发现XMPP是多么棒,我正在尝试将多人游戏作为XMPP组件开发(XEP-0114)。
但是,我在指示组件的存在时遇到问题。是真的,该组件需要响应< presence> stanzas本身?
当然可以做到这一点,但如果它因维护而停机则不行。此外,组件在备份时会通知谁?它当然可以在数据库中注册所有感兴趣的用户,但如果它停止了五分钟,那么该列表肯定会发生变化。以前不感兴趣的用户现在将是,并且感兴趣的用户将不再是。
此外,如果它崩溃(可能发生),它也无法发出“不可用”的状态指示。
这项工作不能以某种方式卸载到服务器上吗?
答案 0 :(得分:0)
当您的组件收到<presence type='probe'/>
时,它应回复您组件的当前状态。
当您的组件收到<presence type='subscribe'/>
时,它应该将from
地址保存在某种存储机制中,然后使用<presence type='subscribed'/>
进行回复。
当您的组件联机时,它应该向在步骤2中保存的每个订阅者发送状态。
始终确保在您的组件发送的所有节中同时放置to
地址和from
地址。如果您习惯于写客户,那么您可能会在第3步中忘记这一点。