MQTT和WebSocket的差别
WebSocket 是一种简单的报文协议,着重解决浏览器和服务端不能进行双向通信的问题。
MQTT 则是一种比较复杂的消息协议。MQTT 不仅规定了具体的协议编码,还规定了客户端和服务器的通信模型。具体来说就是MQTT是一种面向主题(topic)的消息广播协议。
MQTT 是一套比较复杂的消息投递协议,而 WebSocket则只是在TCP协议之上实现了简单的报文通信。两种协议工作层次不一样。从这个意义上讲,MQTT 可以工作在 WebSocket之上。
虽然两都均使用二进行编码,但 WebSocket 的报文要远比 MQTT 简单。
MQTT 主要应用在物联网等场景,WebSocket 因为有配套的浏览器API,主要应用在 Web 开发领域。但两者均为通用的应用层协议,可以在任何相关的场景使用。
MQTT和WebSocket都是面向报文的二进制传输协议。WebSocket更简单,更灵活;MQTT相对复杂,但功能强大。大家可以根据自己的使用场景按需选择。