我正在使用xiff_3_1_0创建连接到openfire服务器的XMPP聊天客户端。
到目前为止一切正常,除了我找不到正确实现保持活动信号的好方法。在类sendKeepAlive
中有一个名为XMPPConnection
的函数,但似乎这依赖于服务器支持的ping扩展。
实际上,API文档中有一个TODO说明:
将ping发送到服务器以保持连接活动,以防万一 服务器没有表明它不支持它。去做: 如果不支持ping,则为空白保持活动...
是否有一种使用xiff_3_1_0发送空白保持活动消息的优雅方式?
或者,有没有办法在openfire服务器上启用ping扩展?
答案 0 :(得分:1)
实际上,在使用之前,您不需要知道服务器是否支持ping扩展(XEP-0199)。如果它不支持它,那么服务器将返回一个错误回复,这可以很好地作为“乒乓”。
空白的好处在于它非常轻量级,但它可以作为保持活动而不是ping。最好的方法是在必要时使用两者。