在进行硬件和web进行交互过程中,要解决传感器和输出控制装置信号如何和服务器进行通信的问题(可以通过socket建立连接,也可以用中间建立数据库进行数据的读写)。本文介绍使用的MQTT如何进行通信,这种方式并发量和稳定性更高。
1.命令行安装
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install libmosquitto-dev
安装MQTT客户端
sudo apt-get install mosquitto-clients
sudo service mosquitto status
若显示 mosquitto start/running, process 816 说明安装成功
2.测试
在xshell开两个窗口
mosquitto订阅mqtt消息
mosquitto_sub -h localhost -t mqtt
mosquitto发布mqtt消息
mosquitto_pub -h localhost -t mqtt -m 'hello mqtt'
在订阅窗口看到 打印出hello mqtt
默认是localhost 但是显示场景中多数是需要设置代理username和password
3.设置代理用户名密码
vim /etc/mosquitto/mosquitto.conf
增加
allow_anonymous false
password_file /etc/mosquitto/pwfile
listener 1883
再编辑pwfile文件(初始文件夹下没有该文件) 使用mosquitto提供的命令
mosquitto_passwd -c /etc/mosquitto/pwfile admin
输入密码
重新加载
mosquitto -c /etc/mosquitto/mosquitto.conf
service mosquitto restart
测试:
mosquitto_sub -h localhost -t mqtt -u admin -P admin
mosquitto_pub -h localhost -t mqtt -m 'get mqtt' -u admin -P admin
可以看到订阅窗口打印出'get mqtt'(注意这里是P大写 p小写是设置端口, 如果这里没有设置username 和 password 会提示没有权限)