前言 : 发现好像没有多少关于windows下使用mosquitto 的 ,特此查阅文献学习
mosquitto的安装
首先我们先去官网下载windows版本的mosquitto 下载自己电脑对应架构的安装包。mosquitto下载。
下载完毕之后,一直点击安装,选择自己合适的路径安装就可以了。
环境配置
安装完毕之后,进行环境的配置。
一般来说 我们安装完之后,无法在cmd 命令行窗口直接使用,需要将安装路径配置到环境变量中。
(系统用户 path 目录下面。)
配置完成之后,我们就可以在命令行窗口执行 mosquitto -h 查看是否配置完毕。
正常,如果显示为下图这样,大概率是因为 服务未开启。
我们在系统启动win 图标 旁边进行搜索“服务”,打开服务 ,找到mosquitto 将服务开启即可。
conf 配置启动
`mosquitto -v -c <path to mosquitto.conf>`
我们可以用这个命令来启动mosquitto的详细模式,-c 表示传递mosquitto 的配置。 加上-d 标志符号 将会以后台的形式运行。 我们可以通过Ctrl + C 来让mosquitto 停止。
修改默认配置
如何修改默认的配置呢,可以借助nssm工具。
首先先确保mosquitto 服务关闭 。相关命令为:
sc stop mosquitto
sc delete mosquitto
之后执行
nssm install mosquitto "C:\Program Files\mosquitto\mosquitto.exe"
nssm set mosquitto AppParameters -c "<path to your config file>"
就可以重新注册服务了。
需要注意的是 自定义配置文件的 路径不要包含空格。
认证连接
第一次连接时,你必须配置好的你的conf文件。
例如
allow_anonymous true
listener 1883 0.0.0.0
这个配置项允许任何匿名连接,无需认证,不过不推荐这么做,容易受到攻击。
参考相关资料,cedalo,我们可以创建认证账号。
如 创建一个密码文件 ,里面写入如下内容
roger:$6$clQ4Ocu312S0qWgl$Cv2wUxgEN73c6C6jlBkswqR4AkHsvDLWvtEXZZ8NpsBLgP1WAo/qA+WXcmEN/mjDNgdUwcxRAveqNMs2xUVQYA==
sub_client:$6$U+qg0/32F0g2Fh+n$fBPSkq/rfNyEQ/TkEjRgwGTTVBpvNhKSyGShovH9KHewsvJ731tD5Zx26IHhR5RYCICt0L9qBW0/KK31UkCliw==
pub_client:$6$vxQ89y+7WrsnL2yn$fSPMmEZn9TSrC8s/jaPmxJ9NijWpkP2e7bMJLz78JXR1vW2x8+T3FZ23byJA6xs5Mt+LeOybAHwcUv0OCl40rA==
一般需要包括用户名:加密码的哈希值。
之后我们可以运用mosquitto 命令来添加账户了
mosquitto_passwd -c <path where you want your password file to be created> <user_name>
path 指的是你文件的对应路径。
如果你想要删除 ,则添加-D 参数 来删除你的认证账户。
mosquitto_passwd -D C:\"Program Files"\mosquitto\passwd user_name
如何持久化你的相关应用数据?
我们可以持久化日志数据,broker系统数据等。
持久化日志数据
我们可以在配置文件中指定log的存放路径
log_dest file C:\Program Files\mosquitto\log\mosquitto.log
添加该项,路径为你存放的具体目录。
你可以选择日志的等级,如 debug, error, warning, notice, information,等
持久化系统数据
通过在配置文件配置以下内容;
persistence true
persistence_file mosquitto.db
persistence_location C:\Program Files\mosquitto\data\
autosave_interval 60
其中persistence 表示开启持久化配置。 persistence_file 表示存储的文件
location 表示存放的位置 autosave_interval 表示 自动存储的时间间隔;
小的总结
总结以上讲到的一些配置内容如下
password_file C:\Program Files\mosquitto\passwd
allow_anonymous false
listener 1883 127.0.0.1
log_dest file C:\Program Files\mosquitto\log\mosquitto.log
log_type all
persistence true
persistence_file mosquitto.db
persistence_location C:\Program Files\mosquitto\data\
autosave_interval 60
另外还有很多的配置 我们可以查看 官方文档来进一步了解,这里不在赘述。
测试是否安装成功
可以用mosquitto sub mosquitto pub 来 进行消息的测试。
mosquitto_sub -i mosq_sub1 -t "Test topic" -d
订阅端 其中 Test topic 为你的订阅主题
mosquitto_sub -i mosq_sub1 -t "Test topic" -h localhost -p 1884 -d
如果你的broker 代理监听的端口不是默认的1883 可以通过-p参数 来实现监听
mosquitto_sub -i mosq_sub1 -t "Test topic" -h localhost -p 1884 -d
发布端, 同理 ,代码如下
mosquitto_pub -i mosq_pub1 -t "Test topic" -m "Test message" -d
此外需要注意的事 如果broker 开启了认证,需要增加额外参数,如账号密码等。
mosquitto_pub -i mosq_pub1 -t "Test topic" -m "Test message" -u <username> -P <password> -d
总结
本文介绍了mosquitto 在windows 环境下的安装,简单介绍了下conf配置文件,以及发布订阅命令等。安装mosquitto 有点类似于mysql 都是 下载安装 将服务集成到 系统服务中,mysql 可以下载一些图形管理界面来管理数据库,mosquitto 我们也可以寻找 对应的图形化管理界面 如国内emq公司出品的mqtt X ,可以很好的来进行消息的订阅和发布,本文没有介绍,感兴趣的可以去官网查看。