您好我正在开发中,我想证明对方是否在线与否的Android应用程序,这样人就可以intiate的communication.I想到几个解决方案:检测设备的在线状态,并发送回服务器
1)执行心跳机制,其中设备将在定时间隔后向服务器发送ping请求。
2)服务器会发送推键入ping到客户端和客户端会给上反应,从而使服务器知道客户端联机。
第一种情况会导致电池和数据问题,而第二种情况会导致推送延迟,从而影响流程。
这个问题有没有更好的解决方案?除了上述这些或即兴版本之外。
您好我正在开发中,我想证明对方是否在线与否的Android应用程序,这样人就可以intiate的communication.I想到几个解决方案:检测设备的在线状态,并发送回服务器
1)执行心跳机制,其中设备将在定时间隔后向服务器发送ping请求。
2)服务器会发送推键入ping到客户端和客户端会给上反应,从而使服务器知道客户端联机。
第一种情况会导致电池和数据问题,而第二种情况会导致推送延迟,从而影响流程。
这个问题有没有更好的解决方案?除了上述这些或即兴版本之外。
nilkash。几乎任何检查网络连接的方法最终都会导致在设备和服务器之间发送周期性的ping。即使推式ping也会实现相同的效果(但它可以节省电池,因为推送通知将所有应用程序的消息汇总到一个连接到谷歌服务器的单个连接中)。所以最好的解决方案只是适当的优化组合,您必须根据您的要求选择它们。
最好的组合可能是这样的:当客户端变为在线时,您总是发送来自客户端的在线消息。您在应用程序处于前台时保持TCP连接。您使用相同的连接将数据传入应用程序和从应用程序传输数据。当您的应用程序进入后台时,您将回退至耗电的基于ping的ping,并以10分钟为基准执行这些操作。
太好了。如果有任何示例代码会更好 – androidXP