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

Posted

技术标签:

【中文标题】尽管用户未连接到服务器,但用户仍处于联机状态。并且无法重新连接到服务器【英文标题】:User is still Online although user is not connected to the server. And failed to reconnecting to the server 【发布时间】:2017-02-17 07:27:03 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于尽管用户未连接到服务器,但用户仍处于联机状态。并且无法重新连接到服务器的主要内容,如果未能解决你的问题,请参考以下文章

网站处于联机状态‘但未对连接尝试做出响应

当用户关闭应用程序并且任务仍处于活动状态时,NSURLSessionDownloadTask 不会删除文件

文件和打印共享资源处于联机状态,但未对连接尝试做出响应。 检测到 远程计算机不接受端口 445 。

到Microsoft Exchange的连接不可用.Outlook必须处于联机或连接状态才能完成该操作

didReceiveRemoteNotification:当应用程序处于后台并且未连接到Xcode时未调用fetchCompletionHandler

网站处于联机状态,但未对连接尝试做出响应