文章目录
  1. 1. MQTT Server 的选择

之前买的 NodeMCU 做了一些试验之后忙着装修,一直没动它。这两天抽空研究了一下 MQTT 协议,用来实现自己家庭用的 IOT Server,接入多个 NodeMCU 设备。MQTT 协议开销很小,而且 NodeMCU 官方有现成的模块可以使用。

MQTT Server 的选择

决定使用 MQTT 协议后就去网上找各种 Brokers 的实现,因为要部署在 vps 上,而且只有自己一个人使用,不能使用那个占用资源非常多的方案。

项目名 开发语言 官网 备注 采用
emqttd erlang http://www.emqtt.io/ 官方提供一个 docker 镜像,运行后初始占用大约要 100 多 MB 内存 ×
mosquitto c https://mosquitto.org/ 资源占用非常小,初始内存只有几百KB
surgemq go https://github.com/influxdata/surgemq 这是一个库,需要自己写代码调用 ×
mqtt go https://github.com/jeffallen/mqtt 看介绍只支持 QOS 0 ×

目前看来还是使用 mosquitto 更符合我的要求一些,能实现身份验证和各种 QOS 级别的消息传递,而且资源占用非常小。使用 go 语言来开发控制端,连接 mosquitto 服务器,通过订阅和发布消息来控制 nodemcu 设备,然后开放一个 web 界面,这样手机也能方便的远程监控家里的情况。

文章目录
  1. 1. MQTT Server 的选择