MQTT&Websocket&MQTTOverWebsocket 一点理解

个人的一点理解,请勘误。

MQTT:

通常用于 IOT 设备上(作为MQTT Client),基于 TCP 有一套自己的协议栈格式。MQTT Server[也称为 MQTT broker]通常在 PC 上。// http://blog.csdn.net/benhuo931115/article/details/51254560
MQTT Client 和 MQTT Server 通常扮演多对多的角色。 一个 Client 发布消息,多个 Client 将会收到该消息。

WebSocket:

通常用户 PC 上,Websocket也是基于 TCP 协议的,同时借用了HTTP的协议来完成一部分握手。
主要解决 HTTP 协议中一个 request 对应一个 response 的尴尬。(http server 不能主动发送消息给 http client)
https://www.zhihu.com/question/20215561
通过 HTTP 完成 websocket 的握手过程,接着按照 websocket 协议进行通讯。
websocket 也有他自己的数据帧格式: http://blog.csdn.net/u010487568/article/details/20569027

MQTT over websocket:

这种场景一般用户 IOT 设备和 PC 设备间的通讯。// http://blog.csdn.net/itzaibadong/article/details/49449995
比如: IoT 作为 MQTT Client, Mosquitto 作为 MQTT Server, PC 作为 websocket client.

下面是可能的一种通讯过程:
// Mosquitto1.4.2 以上支持 websocket。
1: PC 先通过 websocket协议和 mosquitto 建立连接,同时订阅主题 A.
2: IOT 设备通过 MQTT协议和 mosquitto 建立连接。
3: IOT 设备发布主题 A
4: mosquitto 将主题 A 发布到它所有的客户端,包括 websocket 客户端,所以 PC 也能收到主题 A.

你可能感兴趣的:(doc)