移动客户端中的长连接技术

本文探讨了移动客户端在IM应用和配置信息更新场景下如何获取实时数据的问题。传统的轮询方式因耗电和流量消耗大而不可取。文章提出通过建立长连接,使得服务端能在数据变化时主动推送给客户端,从而解决了这个问题。文中提到在App启动时与服务器建立Socket连接,退出时断开,以实现服务端的Push机制。
摘要由CSDN通过智能技术生成

在移动互联网的App开发中,我们经常遇到这样的场景:
1) IM类应用。当A用户与B用户聊天时,A用户向对方发送消息时,需要将A用户发送的消息推送至B用户。
2) App的配置信息。以滴滴打车为例,用户在不支持滴滴打车的城市打开app,它会提示当前城市暂不支持打车,一般的原理就是,app会维护一份当前支持打车的城市列表,每新上线一个城市就会更新这份列表。
以上两类场景本质上是相似的,即数据在服务端,并且随时可能更新,那么客户端如何获取更新的数据呢,最简单直接的我们会想到客户端定时向服务端询问有没有最新的数据,如果有就拉取,即最为常见的轮询方案。
轮询(pull)
事实上很多时候我们都在这么做,对于简单的小应用来说,也是简单快捷的实现方案。假设App中有个样式资源文件,改变这个文件可以在不重新安装app的情况下实现产品视觉效果的极大改善,如果能够在不重新安装App的情况下,动态的升级文件,改善完美我们的产品效果是不是很酷?那该怎么实现呢?
这里写图片描述
App启动时检查一下,OK,搞定。
但是对于IM类场景呢,我们能频繁的发起数据查询请求么?
这里写图片描述
如果真的这么实现了,那估计你就距离失业不远了,因为完全没有考虑移动产品的特性:
耗电量:移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值