mosquitto是mqtt服务器客户端的一个实现,编译安装后可使用服务端以及客户端服务。mqtt包含服务器、发布者、订阅者三个角色。
1.下载
https://mosquitto.org/download/
2.安装
在linux下解压源文件后再进入源文件根目录,执行make后再执行make install
3.使用默认配置
开启服务端:在终端1中执行:mosquitto
开启订阅客户端:在终端2中执行:mosquitto_sub -t 'test/topic' -v
发布数据:在终端3中执行:mosquitto_pub -t 'test/topic' -m 'hello world',终端2中客户端接收订阅消息hello word并显示。
4.修改配置
修改目的:1.客户端需要使用用户名和密码才能与服务端交互
2.新增topic,订阅发布时都用新的topic
修改服务器配置文件:文件路径/etc/mosquitto/mosquitto.conf
增加用户管理文件路径配置参数:“#password_file” 改为"password_file /etc/mosquitto/pwfile"
增加topic管理文件路径配置参数:"#acl_file" 改为 “acl_file /etc/mosquitto/aclfile”
增加访问控制:增加用户:test 增加主题:test_jxd。修改此文件 /etc/mosquitto/aclfile 。
# This affects access control for clients with no username.
topic read $SYS/#
# This only affects clients with username "roger".
user roger
topic foo/bar
# This affects all clients.
pattern write $SYS/broker/connection/%c/state
user test
topic test_jxd
新增用户:用户:test 密码:test
增加用户操作:sudo mosquitto_passwd /etc/mosquitto/pwfile test
5.使用新配置
开启服务端:在终端1中执行:mosquitto -c /etc/mosquitto/mosquitto.conf
开启订阅客户端:在终端2中执行:mosquitto_sub -t test_jxd -u test -P test
发布数据:在终端3中执行:mosquitto_pub -t test_jxd -u test -P test -m 'hello world',终端2中客户端接收订阅消息hello word并显示。