首页 新闻 赞助 找找看

android socket 长连接

0
悬赏园豆:50 [已解决问题] 解决于 2015-06-10 20:17

如题.

客户端是android设备,连接到服务器后,使用AlarmManager每10秒发一个心跳包到服务器。如果屏幕不关(使用WakeLock),那么连接会一直健康的存在着,而且心跳也正常的发送;如果按下电源键把屏幕关闭之后,过个15分钟的样子,设备就不再发送心跳包了;此时若服务端调用send()发消息给android设备,会出现socket error(10053)错误(错误描述:您的主机中的软件中止了一个已建立的连接。),如果是手动关闭设备的socket连接,服务端会接收到socket关闭的事件;如果是直接关闭应用设备的应用程序,此时socket是异常关闭,在服务端也会接收到socket关闭的事件;就唯独这种情况服务端没有收到关闭的事件:设备进入休眠过了十几分钟不发心跳包,服务器说C端(android设备上面的APP)关闭了一个连接。

我想问的问题是:有什么办法可以让android在正常休眠的情况下让socket保持长连接(就是不要使用WakeLock),并且心跳正常不断呢?

莫压枯枯地的主页 莫压枯枯地 | 菜鸟二级 | 园豆:220
提问于:2015-04-24 11:44
< >
分享
最佳答案
0

app处于active状态的时候就保持连接,如果休眠,直接断了,就这么简单

莫压枯枯地 | 菜鸟二级 |园豆:220 | 2015-06-10 20:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册