java - 如何保持android客户端和套接字服务器之间的连接?

标签 java android serversocket

我需要在我的 android 应用程序的 java 服务器套接字中维护连接。 (我想在 android 应用程序中保持这种连接)。 作为临时解决方案,我每隔 1 或 2 分钟反复刷新一次连接。 (我每次都在我的应用程序和套接字服务器之间建立连接,以保证保持连接) 还有其他解决方案吗?

我真的需要你的帮助。谢谢。

最佳答案

更好的模型基于推送通知。

您的 android 设备通过 google GCM 服务(https://developer.android.com/google/gcm/index.html)向您的服务器注册。只要服务器有您的客户端的数据,它就会通过 GCM 推送数据。

使用 GCM 将使您免于管理实时连接和消息传递保证。

如果客户端有数据给服务器,它可以连接-发送-断开。

上述模型在 Android 上运行得更好,而且电池效率更高,更可靠,代码更少。此外,它允许您的应用程序在传入服务器消息到达时自动唤醒,因此您不必运行“前台服务”等待消息、占用电话资源和显示持续通知。

为了使用基于 TCP 的套接字保持连接,您应该每隔一段时间发送一条保持 Activity 消息。如果该保持 Activity 消息未发送,您将重新建立连接。 为获得最佳效果,请让 Android 客户端执行保持 Activity 状态。 此外,让您的 Android 监视器连接状态,这样您就可以实时了解您的连接是断开还是接通。 典型的安卓设备可能会从 3G 变为 wifi,在地下失去连接​​等。

关于java - 如何保持android客户端和套接字服务器之间的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437454/

相关文章:

javascript - 这个 for 循环有什么作用?

android - 找不到类 'android.view.autofill.AutofillManager

android - Android Studio 4.1 中的 "Operation Succeeded",无操作

java - 我发现我的代码在 "socket socket = serverSocket.accept();"之后没有跟随,程序卡在这里

java - 输出.println(); Java SocketServer 不工作

c# - TCP 套接字错误 10061

Java 流 : List of objects to HashMap without duplicates

java - 无法从 CentOS 8 服务器使用 MS JDBC 驱动程序连接到 SQL Server 服务器 : SSL error but not using secure connection

java - 如何在添加按钮事件中选择表格列?

java - 确保 Integer.parseInt(String) 是 java 中的有效 int