一、 安装mosquitto
1. 引入库:
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
2. 安装:
sudo apt-get update
sudo apt-get install mosquitto
3. 添加和修改配置文件
- 添加配置文件
1. 在/etc/mosquitto/conf.d目录下,添加配置文件myconfig.conf 配置文件
sudo vi /etc/mosquitto/conf.d/myconfig.conf
2. 粘入下面配置
#添加监听端口(很重要,否则只能本机访问)
listener 1883
#-------------------------------------------
# 关闭匿名访问,客户端必须使用用户名
allow_anonymous false
#指定 用户名-密码 文件
password_file /etc/mosquitto/pwfile.txt
#--------------------------------------------
- 添加账户及密码
sudo mosquitto_passwd -c /etc/mosquitto/pwfile.txt 用户名
回车后连续输入两次用户密码即可
- 启动mosquitto
sudo service mosquitto start
- 查看mosquitto运行状态
sudo service mosquitto status
二、运行测试
- MQTT.fx 新建客户端并连接服务器
1. 打开MQTT.fx后按下图操作
2. 右侧绿灯亮起则表示连接成功,下面即可进行相应的订阅或发布操作,此处电脑(一个客户端)订阅三个主题如下图所示:
3. 装置处(另一个客户端)在成功连接服务器之后,发布相应主题信息,在电脑客户端上即可成功看到订阅的主题的消息负载内容。
三、遇到的问题及解决措施
- 遇到的问题
电脑端MQTT.fx可正常连接服务器,电脑端可以ping通虚拟机,但装置处无法ping通虚拟机
- 解决措施
将装置和虚拟机设为同一个网段,此处设为192.168.1.*
1. 设置虚拟机ip
点击VMware 菜单栏编辑—> 虚拟网络编辑器 —>找到右下角的“更改设置" 按图中所示修改
点击VMware 菜单栏编辑—> 虚拟机 —>设置 将网络连接方式改为桥接模式
完成以上两个步骤后,打开虚拟机,在网络配置中,手动配置IP(此处使用的是192.168.1.123)
2. 修改装置ip
将装置ip设为与虚拟机同网段:192.168.1.138
3. 完成上面两个步骤后,装置即可ping通虚拟机,意味着装置和服务器即可正常通信