移动客户端中长连接技术(一)

本文探讨了移动客户端实现长连接的技术挑战,包括移动网络的NAT和网关策略,以及如何通过心跳包维持连接。介绍了初步的长连接模型及其问题,并提出通过心跳机制和断网重连来维护稳定的长连接。同时,对比了Android和iOS系统的长连接实现方式,强调了系统级长连接的省电和安全性优势。
摘要由CSDN通过智能技术生成

前文提到用socket基于自定义的协议和TCP协议实现长连接,今天我们一步步来推演一下长连接的框架结构。
记得小学的时候有篇文章,讲述的是手工课上,爱因斯坦做出了一个非常简单粗陋的小板凳,老师和同学们都嘲笑他:还有比这更难看的小板凳么,爱因斯坦默默拿出了之前的做的一个和第二个小板凳,说:有,这两个是我前两次做的,比这个更加的丑陋。依循大师足迹,我们也来做一做自己的小板凳。
第一个小板凳
这里写图片描述
Now,产品原型诞生了。基于最简单的想法,只要客户端主动发起请求,并且成功连接到服务端,那么客户端与服务端就可以通过建立的链接自有的交流了。在不需要长连接模块时,断开连接,完成了整个交互的流程。
但是这个模型是几乎完全不能正常工作的。这涉及到计算机网络的相关知识。
移动网络
当一台手机连接上移动互联网时,运营商从其空闲的IP地址池中取出一个给该手机使用,这个IP是运营商的内网IP,用户这时也并没有真正连接上Internet,手机最终要连上Internet需要运营商的网关进行IP地址的转换(NetWork Address Translation,简称NAT),就是将内网的IP、端口映射到外部IP地址上。运营商为了减轻网关压力,腾出更多的空间给需要的用户,在一个链路有一段时间没有通信时就会强制断开其连接,删除其NAT映射表,造成链路中断。
所以第一个小板凳的连接很快就会被网关kill掉,为了保证数据通道的畅通,长连接采用了定期向服务器发送空闲数据包

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值