??1、服务端主动发送给客户端的数据(反控)的时效性(如通过APP控制硬件动作)
??因MQTT协议是保持连接的,所以及时性相对很好;CoAP协议是无连接响应式通讯,因此不能主动推送,要等客户端访问才可以携带回去,及时性相对较差。
??2、设备环境对底层协议的要求或限制
??MQTT协议是建立在TCP协议基础之上的,因此他也具备TCP协议的优缺点;CoAP协议是建立在UDP协议基础之上的,因此他也具备UDP协议的优缺点。
??3、在NAT网络环境中是否需要调整
??因MQTT协议是保持长连接的,所以在NAT下没有问题;CoAP协议因是无连接方式,需要使用NAT穿透性手段。
??4、实现多对多的通信还是单对单通信
??因MQTT协议的消息模型是发布/订阅式的,所以是可以多对多通信的;CoAP协议的消息模型是请求/响应式的,所以是单对单通信。
??5、服务质量等级及自动重连重发
因MQTT协议有QoS配置,支持服务质量等级和自动重连重发机制;CoAP本身不具备,需要应用层自己来写这个逻辑。??
??6、对网络稳定性要求
??MQTT协议利用自动重连重发机制解决网络不稳定问题,断网就会触发重连;CoAP协议只有客户端发送的时候需要保证网络连接正常,其他时段无需连接。
??7、对硬件设备的功耗影响
??MQTT协议因有保持连接,所以功耗略高于CoAP协议。