MQTT(Message Queuing Telemetry Transport)是一种轻量级的通信协议,设计用于物联网设备之间的低带宽、不稳定网络环境下的高效通信。MQTT允许设备通过发布(publish)和订阅(subscribe)模式进行消息传递,这种模式称为发布-订阅模式。MQTT服务器是提供MQTT协议支持的服务器,用于接收客户端发布的消息,并将消息传递给订阅了相应主题的客户端。
MQTT服务器软件有很多种选择,例如Mosquitto、EMQ、RabbitMQ等。
Mosquitto是一个开源的MQTT消息代理(Broker),用于实现MQTT协议。
Mosquitto支持可发布/可订阅的消息推送模式,适用于低功耗传感器、手机、嵌入式计算机、微型控制器等移动设备之间的通信。
Mosquitto的特点包括:
1.实现了MQTT v3.1协议,支持轻量级的消息推送模式;
2.允许设备和应用之间进行高效的消息通信,适用于物联网领域;
3.提供了发布和订阅功能,以及QoS级别控制等;
4.可以在不同的操作系统上安装和运行,包括Windows、Linux等。
要在Ubuntu上安装和配置Mosquitto服务器的步骤如下:
第一步:安装服务器
sudo apt install mosquitto
第二步:安装客户端工具
sudo apt install mosquitto-clients
第三步:设置用户名和密码
Mosquitto服务器默认没有用户名和密码,且只能本机访问,不允许远程访问。如果要让安装的Mosquitto服务器支持远程访问,就必须设置用户名和密码。
这里假设设置用户名为user1,密码为pass1。
sudo mosquitto_passwd -c /etc/mosquitto/pass.conf user1
这时会提示输入密码,连续输入两次pass1,然后回车即可。
第四步:将用户名和密码文件路径写入配置文件
用文本编辑器打开文件/etc/mosquitto/mosquitto.conf文件,在文件最后添加以下两行:
password_file /etc/mosquitto/pass.conf
listener 1883
第五步:重启服务
sudo service mosquitto restart
通过mosquitto提供的客户端工具mosquitto_pub和mosquitto_sub验证发布和接收MQTT消息
发布消息:
订阅消息: