学习 MQTT

MQTT,全名 Message Queuing Telemetry Transport,消息队列遥测传输。
主要是为了解决物联网中,machine to machine 的传输效率问题。
MQTT 是基于TCP的Pub/Sub协议,如果用层级去理解的话,MQTT是介于 ws,http 和 tcp/ip 之间的那一层。

MQTT 有什么不同?

在一般的传输测试中,完成同样的数据通信,MQTT 只需要 HTTP 约 1/4 得数据流量。

安装

截止这篇文章,2019年4月 MQTT 发布了最新的 5.0版本,但是好像还没有能够支持的 client。
因为我用的是 golang,所以我找了eclipse的 MQTT go-client 实现
感觉还是挺好用的。

一如往常的SC 架构,我们还需要在特定的机器上运行一个 MQTT 的 server。
我选用的是Mosqiotto,比蚊子多了个 t。
mac 下的安装运行是这样的:

1
2
3
4
brew install mosquitto
brew services start mosquitto
// Or, if you don't want/need a background service you can just run:
mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf

不错的视频教程:https://www.youtube.com/watch?v=AsDHEDbyLfg
你也可以设置密码访问,利用 mosquitto_passwd