java android长连接_如何干净的实现Android/Java Socket 长连接通信

展开全部

所谓长连接,它通常包含以下几个关键过程:轮询的建立

建立轮询的过程很简单,浏览器发起请求后进入循环等待e69da5e6ba903231313335323631343130323136353331333339663363状态,此时由于服务器还未做出应答,所以HTTP也一直处于连接状态中。

2. 数据的推送

在循环过程中,服务器程序对数据变动进行监控,如发现更新,将该信息输出给浏览器,随即断开连接,完成应答过程,实现“服务器推”。

3. 轮询的终止

轮询可能在以下3种情况时终止:

3.1. 有新数据推送

当循环过程中服务器向浏览器推送信息后,应该主动结束程序运行从而让连接断开,这样浏览器才能及时收到数据。

3.2. 没有新数据推送

循环不能一直持续下去,应该设定一个最长时限,避免WEB服务器超时(Timeout),若一直没有新信息,服务器应主动向浏览器发送本次轮询无新信息的正常响应,并断开连接,这也被称为“心跳”信息。

3.3. 网络故障或异常

由于网络故障等因素造成的请求超时或出错也可能导致轮询的意外中断,此时浏览器将收到错误信息。

4. 轮询的重建

浏览器收到回复并进行相应处理后,应马上重新发起请求,开始一个新的轮询周期。

客户端代码片段

$(function () {

window.setInterval(function () {

$.get("${pageContext.request.contextPath

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值