有这样一个问题,麻烦大家帮帮看看,
移动端手机设置每30s实时传输位置信息到后台,现在有一个需求是这样的,网络不好时,请求可能会传不过去了,这时就会存在一段时间的掉线。 现在有这个要求,当出现这种情况时,如果掉线十分钟以上的话, 我就得把掉线期间的数据做一个特殊的处理了 ,这种情况 我应该怎样去处理呢 ---
因为 这个数据会影响到我之后展现在地图上的路径 ,如果不掉线 ,就画一个实线路径就好了,但是现在 掉线期间的这段 ,之后用虚线来展现 我要怎么去做啊。
我现在的想法是,比如依次传输A、B、C 、D、E五个点数据到后台,在传输完,C点后,手机进入掉线状态了,过了一段时间后,网络恢复正常后,接收到了D点,E点。成功接收到D点后,将之后发送过来的E点数据中加一个标记,这时后台收到标记后。我再对之前收到D点的数据进行处理。这种方法可行吗,还是有更好的其他方法。求解 答!
一个基本原则是,哪一端出现的问题,应该从那一端着手解决,否则会有很奇怪的耦合行为。
手机进入掉线状态,重新补发的数据不能够做上标记吗?后端的角度,很难知道手机是掉线了还是关机了或者是重新打开了吧?
你可以将掉线期间所要传输的数据进行一个数据持久化,然后事实的判断网络状态,如果网络恢复那么就将掉线期间的数据发给后台进行处理,你这里延迟30秒的在再传D点的话一定会有延迟、所以等网络恢复立即处理掉线数据
普遍比较可行的是:
移动端掉线之后,位置信息先保存到本地,等连上服务器再一次提交,服务端重新绘制
接口设置服务ID字段,后台将数据持久化,接收到掉线后补发的数据时,比较存储的服务ID,若一致就拼接并重绘地图路径