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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值