服务器这里使用了阿里云的服务器,mosquitto默认需要1883的TCP入端口。需要在安全策略里设置一下。端口当然也可以选其他端口进行配置。
服务安装 # 服务器终端安装mosquitto和mosquitto-clients,后者是一些客户端,方便我们测试用sudo apt install mosquitto mosquitto-clients 服务状态查看 sudo systemctl status mosquitto 客户端监听 mosquitto_sub 命令参数说明1. -c 设定‘clean session’为无效状态,这样一直保持订阅状态,即便是已经失去连接,如果再次连接仍旧能够接收的断开期间发送的消息。2. -d 打印debug信息3. -h 指定要连接的域名 默认为localhost4. -i 指定clientId5. -I 指定clientId前缀6. -k keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒。7. -q 指定希望接收到QoS为什么的消息 默认QoS为08. -R 不显示陈旧的消息9. -t 订阅topic10. -v 打印消息11. --will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用12. --will-qos Will的QoS值。该参数需要与--will-topic一起使用13. --will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用14. --will-topic 用户发送Will消息的topic # mosquitto_sub 订阅消息# -h :指定服务器地址# -p :指定端口# -t :指定topicmosquitto_sub -h localhost -p 1883 -t "demo/1" 发布消息 mosquitto_pub 命令参数说明1. -d 打印debug信息2. -f 将指定文件的内容作为发送消息的内容3. -h 指定要连接的域名 默认为localhost4. -i 指定要给哪个clientId的用户发送消息5. -I 指定给哪个clientId前缀的用户发送消息6. -m 消息内容7. -n 发送一个空(null)消息8. -p 连接端口号9. -q 指定QoS的值(0,1,2)10. -t 指定topic11. -u 指定broker访问用户12. -P 指定broker访问密码13. -V 指定MQTT协议版本14. --will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用15. --will-qos Will的QoS值。该参数需要与--will-topic一起使用16. --will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用17. --will-topic 用户发送Will消息的topic # -m :指定消息内容mosquitto_pub -h localhost -p 1883 -t "demo/1" -m "test"服务器关闭
# 查看mosquitto服务进程IDps -aux | grep mosquitto# 杀掉服务进程# PID 为上一步查找的IDkill -9 PID例如:
重启服务器启动命令#
mosquitto [-c config file] [ -d | --daemon ] [-p port number] [-v]
-c 后面跟的是启动mosquitto可以调整的参数,比如是否开启基本认证,端口是什么,SSL单向和双向的认证配置等等。-d 表示MQTT mosquitto将在后台运行。-p 代表当前的mosquitto服务实例启动以后,其监听端口号,这个配置的覆盖[-c config file] 指定的配置文件中的端口-v 代码调试模式(verbose)可以输出