0. 原料

  • windows系统的主机
  • mosquitto软件

1. 下载和安装mosquitto

mosquitto可以自己到GitHub上下载源码根据自己实际需求进行编译,也可以直接使用官方提供的二进制文件,我这里直接用的官方二进制文件。

http://mosquitto.org/files/binary/下载对应windows版本的mqtt服务端软件。
我下载了这一版。

2. 配置mosquitto

只需要配置mosquitto.conf文件。
根据我的实际需求,要开启匿名登录和远程访问。

2.1 开启匿名访问

在配置文件中搜索allow_anonymous,去掉该行前边的#,将false改成true

2.2 开启监听和远程访问

在配置文件中搜索listener port-number,根据提示# listener port-number [ip address/host name/unix socket path]修改。
添加一行port 1883,在1883端口使用mqtt协议。

如果还要开启websockets访问方式,需要再添加两行代码
listener 1884
protocol websockets
用1884服务于websockets协议

  • 注:我最开始安装的版本是2.0.0,开启ws后会异常,用1883端口时,1884端口会断,用1884端口时,1883端口会断,所以换到了旧版本(1.6.10)

3. 运行mqtt

mosquitto的安装目录下执行mosquitto.exe -c mosquitto.conf,执行修改后配置文件。

4. 测试MQTT

使用MQTT.fx进行测试。

5. 开机自启

上边运行mqtt程序是通过命令行手动执行,此外,也可以通过服务自启。
打开服务:

修改服务的属性:

  • 启动类型修改为自动
  • 启动参数填写-c mosquitto.conf,目的是在启动时加载刚刚修改的那个配置文件。(不填写也行,好像默认也可以找得到那个文件?)

6. 注意事项

  • 在阿里云等服务器上搭建的时候,外网想要访问mqtt,需要在服务器的安全组中开启TCP协议的1883端口访问权限,否则访问不了。
  • 新旧版本的配置文件略有不同,参考conf文件中的说明配置就好。