您好我正在开发Android应用程序,其中我想显示其他人是否在线,以便人们可以开始沟通。我想到的解决方案很少:
1)实施心跳机制,其中设备将在修复时间间隔后向服务器发送ping请求。
2)服务器会向客户端发送推送类型ping ,客户端会对此做出响应,以便服务器知道客户端在线。
第一种情况导致电池和数据问题,而第二种情况导致推迟延迟,这将影响过程。
这个问题还有更好的解决方案吗?除了以上这些或即兴版本之外。
答案 0 :(得分:2)
nilkash。实际上,检查网络连接的任何方法最终都会导致在设备和服务器之间发送定期ping。即使推送类型ping实际上也会这样做(但它节省了电池,因为推送通知将所有应用程序的消息聚合到一个连接到谷歌服务器的连接)。因此,最佳解决方案只是优化的适当组合,您必须根据您的要求选择它们。
最佳组合可能是这样的:您总是在客户端上线时发送在线消息。应用程序在前台时保持TCP连接。您使用相同的连接与应用程序之间传输数据。当您的应用程序进入后台时,您将回退到耗电的基于推送的ping操作,并以10分钟为基础进行操作。