新年10个Flag实现中~
访问量
548.9K
文章数
120
运行天
710
前言在接触到MQTT之后,总是会有疑问,为什么用MQTT不用TCP长连接透传?看起来【TCP长连接+私有协议透传】和【MQTT+业务主题】似乎都能达到同样的目的,甚至用MQTT会使得设备端逻辑实现、APP端逻辑实现、云端架构实现更加复杂。那么为什么物联网还要使用MQTT协议呢?一、MQTT相比于TCP长连接的优势1、协议更标准MQTT是标准的RFC协议,相比于私有协议而言更加标准。好处在于:(1)协议非常完整,能够马上用于生产。各端实现同一套协议之后,就能进行通信;私有协议还需要进行大量的验证,看有无缺陷或欠考虑的地方等。(2)协议的标准化带来大量的开源组件,降低开发难度。随着物联网+5G生态越来越好,开源组件越来越多,可以减少重复编码量。(3)标准协议利于第三方接入。当第三方设备、平台想要
前言了解TCP的KeepAlive机制有利于服务器调参。TCP的KeepAlive没错,和想象的一样,通过“心跳包”来检查链路是否连通,但在标准的TCP规范中,并没有保活的强制性要求。传输层KeepAilve缺点在传输层做保活有很多缺点:(1)如果中间链路出现短暂的差错(比如某个路由器重启),可能会使得一个非常好的链路被释放掉(2)心跳包耗费了不必要的带宽,增加了流量费用(3)在一些复杂的网络环境下(比如某些网络不响应不带数据的报文),TCP保活机制可能会失效。TCP的KeepAlive机制描述但事实上,许多实现都提供了KeepAlive的功能(默认关闭)。  如果一个给定的连接在7200秒(2小时)内没有任何动作,那么服务器就向客户端发送一个探查报文段,此时客户机可能处
1