我们知道MQTT消息服务器有很多,但是最常用的只有两个: Mosquitto和EMQTT。在性能上来看,EMQTT的并发量最高,但同时CPU使用也占比很高。Moqtuitto虽然并发量不及EMQTT,但是其发送消息更快,CPU占用也更少。因此,本文选择了Moqtuitto作为MQTT消息服务器。
Mosquitto 安装
Mosquitto有很多版本,如果想体验新版本可以上github下载源文件编译,比较麻烦。我这里使用Mosquiitto提供的windows版本,虽然版本不是最新的,但是稳定。
1. 下载
从官网下载https://mosquitto.org/download/, 目前最新版本为
mosquitto-1.6.8-install-windows-x64.exe
2. 安装
虽然一路“下一步”很爽,为了默认的路径“C:\Program Files\mosquitto”包含了空格,所以这里安装时在C盘的mosquitto目录下。
3. 启动服务
如下图所示,点击启动服务后,mosquitto命令才可用。
4. 配置用户名密码
进入“C:\mosquitto”目录下,可以查看mosquitto的配置文件及命令
4.1 修改配置
找到mosquitto.conf文件,在任意位置添加如下代码,重启服务生效。
# 设置不允许匿名登录
allow_anonymous false
# 设置账户密码文件位置为C:\mosquitto\pwfile.example
password_file /mosquitto/pwfile.example
4.2 添加用户名密码(命令行)
mosquitto_passwd -c pwfile.example username (使用-c 参数会导致清空密码文件,重新插入用户)
mosquitto_passwd pwfile.example username(不使用-c 表示追加用户,不影响旧用户)
C:\mosquitto>mosquitto_passwd.exe pwfile.example username
Password:
Reenter password:
4.3 查看用户名密码
添加成功后pwfile.example会出现刚刚添加的用户信息。
5. 测试
5.1 启动服务
新开一命令行窗口,使用以下命令启动服务。
C:\mosquitto>mosquitto.exe -c mosquitto.conf
5.2 订阅消息
新开一命令行窗口,订阅消息 mosquitto_sub -u cx -P cx -t 'virus /topic' -v, 当执行5.3命令时,该窗口会接收到订阅消息。
C:\mosquitto>mosquitto_sub -u cx -P cx -t 'virus /topic' -v
'virus/topic' '消灭病毒'
'virus/topic' '消灭病毒'
'virus /topic' '消灭病毒'
5.3 发送消息
新开一命令行窗口,发送消息 mosquitto_pub -u cx -P cx -t 'virus/topic' -m '消灭病毒'
C:\mosquitto>mosquitto_pub -u cx -P cx -t 'virus/topic' -m '消灭病毒'
6. 如果不想使用上面的命令行进行测试,也可以使用MQTT客户端paho(http://www.eclipse.org/paho/components/tool/)进行测试。
来源:51CTO
作者:genuinecx
链接:https://blog.51cto.com/favccxx/2469991