问:滴滴打车乘客可以时时看到司机的位置是如何做到的?
答:司机端那边会定时刷新自己的地理,然后上传到服务器。 乘客端这边方法有很多,一种是轮询,就是定时器每隔个周期去不断的请求司机的坐标,然后更新地图的UI。 第二种就是使用长连接,就好比聊天一样,乘客端这边一直和服务器保持连接,司机端一但上传了地理位置,乘客端这边立马能接收到司机的位置消息。 还有一种就是用apns的消息推送了,原理和第二种差不多。 相对这几种,第二种是比较适合,第一种太消耗流量和性能。第三种则很不稳定,得到的数据没那么及时。
所以长连接应该是解决配送员时时监控的一种较好的方法
1,MQTT 协议
从HTTP到MQTT:一个基于位置服务的APP数据通信实践概述
在基于位置服务的移动应用领域(最典型的是打车应用),移动设备端和服务端之间总是存在大量的交互(用户可实时获取自已附近网约车的实时位置信息)。设备向服务端发送它的位置信息和其它设备信息,服务端接收这些数据,对它们进行处理,并返回给设备端一些命令。设备端根据这些命令执行一些操作,比如GPS数据的收集和发送频率等。
基于以上业务场景,如此频繁的数据交互,要达到数据的实时推送级别,该选用哪种技术?HTTP短轮询还是基于TCP的实时长连接?本文给出的答案是使用MQTT协议,请继续往下阅读。
文章链接 http://www.52im.net/thread-605-1-1.html
MQTT的优点是:协议简洁轻巧,数据冗余量低。并且支持的设备从智能硬件到智能手机无所不包。
MQTT的缺点是:服务器端实现难度大,虽然已经有了C++版本的服务端组件,但是并不开源。而且在推送数量较大时如何处理并发是十分考验后台人员的技术水平的。
网友评论