本篇文章是为了让我们知道所谓的心跳包就是(探测性的)数据包,之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。
事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。
最大的作用就一句话,就是告诉服务器:
我还活着,别给我踢下线了。
1.为什么需要心跳?
4G物联网设备受限于自身工作环境的影响,极有可能发生网络不稳定的情况。
例如:
人多的环境中,为了保证人联网的及时性,物联网设备的通讯优先级会被运营商调低,极有可能出现多个物联网设备互相竞争4G通讯通道,或者与手机等人联网设备竞争网络通道的情况。
再比如:
野外环境下,本身就人烟罕至的地方,运营商基站覆盖弱。
又或者:
半夜运营商降低基站发射功率来省电,或者半夜进行基站的维护。
还有可能:
服务器遇到特殊情况进行维护升级,没有及时通知物联网设备,导致设备一直进行重连/数据重传等操作,耗尽了物联网卡的流量。
以上等等诸如此类的意外情况,都会使本来正常环境下能联网的4G物联网设备,突然断网,导致服务器长期收不到模组发过来的数据或者模组收不到服务器发过来的数据,进而导致数据延迟、丢失,最终导致用户