MQTT是为了物联网场景设计的基于TCP的Pub/Sub协议,有许多为物联网优化的特性,比如适应不同网络的QoS、层级主题、遗言等等。
WebSocket是为了HTML5应用方便与服务器双向通讯而设计的协议,HTTP握手然后转TCP协议,用于取代之前的Server Push、Comet、长轮询等老旧实现。
MQTT:
通常用于 IOT 设备上(作为MQTT Client),基于 TCP 有一套自己的协议栈格式。MQTT Server[也称为 MQTT broker]通常在 PC 上。// blog.csdn.net/benhuo93111…
MQTT Client 和 MQTT Server 通常扮演多对多的角色。 一个 Client 发布消息,多个 Client 将会收到该消息。
WebSocket:
通常用户 PC 上,Websocket也是基于 TCP 协议的,同时借用了HTTP的协议来完成一部分握手。
主要解决 HTTP 协议中一个 request 对应一个 response 的尴尬。(http server 不能主动发送消息给 http client)
www.zhihu.com/question/20…
通过 HTTP 完成 websocket 的握手过程,接着按照 websocket 协议进行通讯。
websocket 也有他自己的数据帧格式: blog.csdn.net/u010487568/…
MQTT over websocket:
这种场景一般用户 IOT 设备和 PC 设备间的通讯。// blog.csdn.net/itzaibadong…
比如: IoT 作为 MQTT Client, Mosquitto 作为 MQTT Server, PC 作