如何使用 XMPPFramework 响应 Openfire ping 请求
Posted
技术标签:
【中文标题】如何使用 XMPPFramework 响应 Openfire ping 请求【英文标题】:How to respond for Openfire ping request with XMPPFramework 【发布时间】:2018-02-06 10:19:41 【问题描述】:正在开发结合 Openfire 和 XMPPFramework 的消息传递功能。为了检查空闲用户状态,我启用了服务器 ping 请求。
如何响应服务器 ping 请求? 服务器请求
<iq from='capulet.lit' to='juliet@capulet.lit/balcony' id='s2c1' type='get'>
<ping xmlns='urn:xmpp:ping'/>
</iq>
【问题讨论】:
我自己找到了一个答案,即 XMPPFramework 提供了一个自动响应服务器 ping 的 ping 类。我们可以使用该 calss 进行自动乒乓 code"1.var xmppping : XMPPPing = XMPPPing.init() 2.self.xmppping.respondsToQueries = true 3.self.xmppping.activate(self.xmppStream)" *这里 XMPPing 是一个类,还有一个类可以从客户端自动发送到服务器" 1.var xmppAutoPing = XMPPAutoPing() 2.self.xmppAutoPing =XMPPAutoPing.init(dispatchQueue: .main ) 3.self.xmppAutoPing.pingInterval = 1 4.self.xmppAutoPing.pingTimeout = 1 5.self.xmppAutoPing.activate(self..xmppStream)"* 【参考方案1】:XMPP 扩展协议XEP-0199 XMPP Ping 中描述了此行为
对 IQ ping 的期望响应是一个空结果。在您的示例中,这就足够了:
<iq from='juliet@capulet.lit/balcony' to='capulet.lit' id='s2c1' type='result'/>
【讨论】:
以上是关于如何使用 XMPPFramework 响应 Openfire ping 请求的主要内容,如果未能解决你的问题,请参考以下文章
XMPPFramework - 如何向 XMPPUserCoreDataStorageObject 添加自定义属性?
如何检查用户 JID 是不是已在 XMPPFrameWork 中使用
XMPPFramework - 如何获取在线和离线好友列表?