【发布时间】:2012-06-05 19:41:45
【问题描述】:
我在使用 smack 构建小型 XMPP 客户端/机器人时遇到了一种非常奇怪的行为。我设置了连接以及 ConnectionListener 和 ChatManagerListener。这很好用,然后我可以与在便携式设备上运行的应用程序聊天。
为了测试失去连接时的行为,我拔掉了便携式设备的以太网电缆。我预计 XMPP 客户端会丢失连接,并且用户将在用户好友名单中设置为“离线”。发生的情况是,该用户仍然显示为“在线”,并且我的客户端的 ConnectionListener 没有触发任何内容,无论是 connectionClosed 还是 reconnectionFailed 或其他。
当我重新插入以太网电缆时,有时就像连接一直处于活动状态一样。处理了离线消息,我可以像以前一样再次聊天。 其他时候,我的客户完全无法访问并且出现故障,似乎所有的听众都走了……但没有抛出任何异常。
这是一种非常奇怪且无法控制的行为,它会使整个客户端对我无法使用,因为我无法确定在中止连接后客户端是否会再次出现。
有没有其他人遇到过这样的问题或有任何提示(没有)发生了什么?
如果需要,我可以提供我的代码,但实际上只是从 Smack 文档中复制和粘贴。
【问题讨论】:
标签: java connection xmpp smack reconnect