mosquitto安装与使用

  • Eclipse Mosquitto 是实现MQTT协议版本5.0、3.1.1和3.1的开源消息代理(经EPL / EDL许可)。
  • mosquitto 是一个开源的轻量级的C实现,适合在从低功耗单板计算机到完整服务器的所有设备上使用。
  • mosquitto包括服务端和客户端。
  • 官网:http://mosquitto.org/

一、安装 mosquitto

# 安装 mosquitto broker
sudo apt-get install mosquitto
# 安装 mosquitto client
sudo apt-get install mosquitto-clients

二、启动 mosquitto 服务

# 开启 mosquitto 服务
service mosquitto start

# 查看 mosquitto 是否启动成功
ps -ef | grep mosquitto

在这里插入图片描述


三、订阅主题

打开一个终端,执行以下命令:

mosquitto_sub -h localhost -t "mqtt" -v
或者
mosquitto_sub -h "192.168.0.103" -t "mqtt" -v

-h 是指定要连接的 MQTT 服务器,localhost 指本机,也可以直接使用本机的 IP。
-t 订阅主题。主题为 mqtt
-v 打印更多的调试信息。


四、发布主题:

打开另一个终端,执行以下命令:

mosquitto_pub -h localhost -t "mqtt" -m "Hello World"

-h 是指定要连接的 MQTT 服务器,localhost 指本机,也可以直接使用本机的 IP。
-t 订阅主题。主题为 mqtt
-m 指定消息内容,这里发送的是 Hello


五、现象展示:

在打开的第一个终端就会收到消息mqtt Hello World
broker
在这里插入图片描述
client
在这里插入图片描述


六、附:命令使用方法

订阅主题:

mosquitto_sub用法:

mosquitto_sub [-c] [-d] [-h hostname] [-i client_id] [-I client id prefix] [-k keepalive time] [-p port number] [-q message QoS] [--quiet] [-v] [ -u username [-Ppassword] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message topic
描述
-c, –disable-clean-session禁止’clean session’选项,即如果客户端断开连接,这个订阅仍然保留来接收随后到的QoS为1和2的消息,当改客户端重新连接之后,它将接收到已排在队列中的消息。建议使用此选项时,客户端id选项设为–id
-d, –debug开启debug选项
-h, –host说明所连接到的域名,默认是localhost
-i, –id客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用。
-I, –id-prefix指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能喝–id同时使用。
-k, –keepalive给代理发送PING命令(目的在于告知代理该客户端连接保持且在正常工作)的间隔时间,默认是60s。
-p, –port说明客户端连接到的端口,默认是1883。
-P, –pw指定密码用于代理认证,使用此选项时必须有有效的用户名。
-q, –qos指定消息的服务质量,可以为0,1,2,默认是0。
–quiet如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
-t, –topic指定订阅的消息主题,允许同时订阅到多个主题。
-u, –username指定用户名用于代理认证。
-v, –verbose冗长地打印收到的消息。若指定该选项,打印消息时前面会打印主题名——“主题 消息内容”,否则,只打印消息内容。
–will-payload如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
–will-qos指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用。
–will-retain如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用。
–will-topic指定客户端意外断开时,Will消息发送到的主题。

发布主题:

mosquitto_pub 用法:

mosquitto_pub [-d] [-h hostname] [-i client_id] [-I client id prefix] [-p port number] [-q message QoS] [--quiet] [-r] { -f file | -l | -m message | -n | -s} [-u username [-P password] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message-topic
描述
-d, –debug开启debug选项
-f, –file把一个文件的内容做为消息的内容发送。经测试,支持txt文件,不支持doc等其他形式文件。
-h, –host说明所连接到的域名,默认是localhost
-i, –id客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用。
-I, –id-prefix指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能和–id同时使用。
-l, –stdin-line从总段读取输入发送消息,一行为一条消息,空白行不会被发送。
-m, –message从命令行发送一条消息,-m后面跟发送的消息内容。
-n, –null-message发送一条空消息。
-p, –port连接的端口号,默认是1883。
-P, –pw指定密码用于代理认证,使用此选项时必须有有效的用户名。
-q, –qos指定消息的服务质量,可以为0,1,2,默认是0。
–quiet如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
-r, –retain如果指定该选项,该条消息将被保留做为最后一条收到的消息。下一个订阅消息者将能至少收到该条消息。
-s, –stdin-file从标准输入接收传输的消息内容,所有输入做为一条消息发送。
-t, –topic指定消息所发布到哪个主题。
-u, –username指定用户名用于代理认证。
–will-payload如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
–will-qos指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用。
–will-retain如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用。
–will-topic指定客户端意外断开时,Will消息发送到的主题。

参考:MQTT–mosquitto使用详解MQTT–入门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值