尽管用户未连接到服务器,但用户仍处于联机状态。并且无法重新连接到服务器

时间:2017-02-17 07:27:04

标签: android xmpp ejabberd smack

我在聊天应用程序中使用smack客户端。一切都会好起来但是当连接由于某种原因中止时,我的服务器在线显示该用户JID。

我的问题是如何在断开连接后再次重新连接到服务器。我能够在服务线程中使用connection.isAuthenticated()方法捕获连接。但无法重新连接到服务器。

1 个答案:

答案 0 :(得分:0)

如果客户端断开但仍然在线显示,您可以在服务器端(ejabberd)启用mod_ping模块以克服在线问题。这与TCP / IP的工作方式有关,而不是ejabberd特有的。通常,Linux配置为在2小时后检测连接丢失,客户端使用ReconnectionManager将应用程序重新连接到ejabberd服务器,或者您可以定义自己的处理程序以跟踪活动连接,如果未连接到服务器,则可以再次连接它。如何启用mod_ping在这里查看 - https://docs.ejabberd.im/admin/configuration/#modping