体验MQTT
1、安装hbmqtt(pip3 install hbmqtt)
2、hbmqtt_sub 和 hbmqtt_pub:hbmqtt_sub 可以充当订阅者的角色;hbmqtt_pub 可以作为消息的发布者。
3、订阅者和发布者之间的经纪人,也就是 MQTT Broker,我们使用 Eclipse 免费开放的在线 Broker 服务。打开链接,你可以看到关于端口的介绍信息,加密和非加密方式都支持,而且还有基于 Websocket 的实现,这对基于前端网页的应用来说是非常有利的。
4、先使用 1883 端口的非加密方式,然后为消息传输确定一个主题(Topic)。主题确定了消息的类别,用于消息过滤。主题设置为:/geektime/iot
5、电脑的终端界面输入下面的命令,就可以订阅这个主题消息
hbmqtt_sub --url mqtt://mqtt.eclipse.org:1883 -t /geektime/iot
6、通过 hbmqtt_pub 发布一个 “/geektime/iot” 主题的消息:
hbmqtt_pub --url mqtt://mqtt.eclipse.org:1883 -t /geektime/iot -m Hello,World!
开放 Broker 作为“经纪人”,消息被传输到了我们通过 hbmqtt_sub 运行的订阅者那里。下图是我的终端界面上运行的结果,一个完整的消息传输过程就这样完成了。
MQTT协议使用说明:
要安装 MQTT,可以直接找到 hbmqtt 这样的项目拿来用。它的背后有 Eclipse 基金会的支持。类似的 MQTT Broker 软件,你还可以选择基于 C 语言的Mosquitto,基于 Erlang 语言的VerneMQ等。至于 MQTT 的客户端(Client)实现,也有成熟的 Python、C、Java 和 JavaScript 等各种编程语言的开源实现,供你参考、使用,比如Eclipse Paho 项目。而且,还有很多商业公司在持续运营功能更丰富、支持更完备的商业版 Broker 实现,比如提供高并发能力的集群特性、方便拓展的插件机制等。这些会大大提高我们技术开发者的工作效率。比如中国一个团队开发、维护的 EMQ X,它已经完整地支持 MQTT5.0 协议
MQTT 自身的“基因”很强大
阿里云、华为云、腾讯云和微软 Azure 这些大厂,之所以不约而同地选择 MQTT 协议作为物联网设备的“第一语言”