英语OK的童鞋请往这边走:Using MQTT, Python and Mosquitto - Practical IOT (steves-internet-guide.com)
まず、MQTT通信紹介
MQTT:Message Queuing Telemetry Transport 消息队列遥测传输协议,是一种基于发布/订阅模式的“轻量级”M2M(设备到设备)通信协议。
补充介绍:
发布/订阅模式:软件架构中,消息的发送方并不朝向特定接收方进行发送消息,而是将消息广播(发布),通过接收方的预定(订阅)主题来筛选发送/收取消息。
轻量级:使用低带宽来实现设备间的消息通信。
为了理解MQTT通信,可类比抖音观众用户和抖音博主用之间的关注操作。
若某观众lsp关注了某博主大美,则大美一旦有发布新视频,则观众lsp就会第一时间获得视频信息。但是前提条件是大美和lsp都在抖音平台上有账户。
所以,为了实现发布/订阅模式,MQTT环境中有个必须的转接件——Broker服务器。Broker相当于上述抖音平台,记录各用户的订阅信息和收藏已发布的消息。具体过程后续介绍。
其最大优点是通过极简代码和有限带宽,为远程设备进行实时可靠的消息服务。作为一种低成本的即时通讯协议,为物联网行业、小型设备通信、移动应用等方面的常用通信协议。
现主要版本有:
- MQTT v3.1.0 – 我用的
- MQTT v3.1.1 – 常用
- MQTT v5
- MQTT-SN
现主要使用库:
- paho(C,Java,Go,Python...)
- others......
次は、MQTTプロセス説明
MQTT通信流程主要分为三部分。
1.构建用户端与Broker服务器
对于MQTT通信协议,由于并不是C/S(客户端/服务端)模式,而是P/S(发布/订阅)模式,故所有用户均为同一阶级,即可以发送消息,也可以接受消息。
2.用户订阅主题信息
MQTT中,每个用户都可以并且需要订阅自己需要的主题。最终Broker服务器会以订阅关系来发送相关数据。
3.用户发布消息
每个MQTT用户端均可以发布消息,Broker接收消息后,会根据订阅情况来广播数据。
关于用户端详细代码流程,后续发布...