MQTT - mosquitto命令总结

此篇为mosquitto的扩展篇,如果有兴趣和闲暇时间的话,可以满足一下自己的求知心 ~

Brother Blog

mosquitto是一个包括服务端和客户端开源broker ~

常用命令

场景命令分析
启动代理服务mosquitto -v【-v】打印更多的调试信息
订阅主题mosquitto_sub -v -t sensor【-t】指定主题,此处为sensor 【-v】打印更多的调试信息
发布内容mosquitto_pub -t sensor -m 12【-t】指定主题【-m】指定消息内容
配置账户密码Mosquitto服务器的配置文件为/etc/mosquitto/mosquitto.conf,关于用户认证的方式和读取的配置都在这个文件中进行配置。
配置文件设置allow_anonymous false不允许匿名用户
配置用户密码文件password_file /etc/mosquitto/pwfile
添加用户信息#mosquitto_passwd -c /etc/mosquitto/pwfile chisj添加用户’chisj’密码’chisj‘
重启Mosquitto1.通过Ctrl+C关闭mosquitto 2.mosquitto-c /etc/mosquitto/mosquitto.conf
(订阅端)客户端启动mosquitto_sub -h ip地址 -t mtopic
(订阅端)客户端(用户名,密码)启动mosquitto_pub -h 192.168.1.100 -t mtopic -u chisj -P chisj -m “test”
(发布者)客户端启动mosquitto_pub -h 192.168.1.100 -t mtopic -u chisj -P chisj -m “test”

mosquitto_pub(发布)用法

命令代表·含义
-ddebug开启debug选项
-ffile把一个文件的内容做为消息的内容发送。经测试,支持txt文件,不支持doc等其他形式文件
-hhost说明所连接到的域名,默认是localhost
-iid客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用
-Iid-prefix指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能和–id同时使用
-lstdin-line从总段读取输入发送消息,一行为一条消息,空白行不会被发送
-mmessage从命令行发送一条消息,-m后面跟发送的消息内容
-nnull-message发送一条空消息
-pport连接的端口号,默认是1883.
-Ppw指定密码用于代理认证,使用此选项时必须有有效的用户名。
-qqos指定消息的服务质量,可以为0,1,2,默认是0
–quietquiet如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息
-rretain如果指定该选项,该条消息将被保留做为最后一条收到的消息。下一个订阅消息者将能至少收到该条消息。
-sstdin-file从标准输入接收传输的消息内容,所有输入做为一条消息发送。
-ttopic指定消息所发布到哪个主题。
-uusername指定用户名用于代理认证。
–will-payload如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
–will-qos指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用.
–will-retain如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用.
–will-topic指定客户端意外断开时,Will消息发送到的主题。

mosquitto_sub(订阅)用法

mosquitto_sub 订阅到主题,接收到消息时打印

命令代表·含义
-cdisable-clean-session禁止’clean session’选项,即如果客户端断开连接,这个订阅仍然保留来接收随后到的QoS为1和2的消息,当改客户端重新连接之后,它将接收到已排在队列中的消息。建议使用此选项时,客户端id选项设为–id
-ddebug开启debug选项
-hhost说明所连接到的域名,默认是localhost
-iid客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用。
-Iid-prefix指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能喝–id同时使用。
-kkeepalive给代理发送PING命令(目的在于告知代理该客户端连接保持且在正常工作)的间隔时间,默认是60s
-pport说明客户端连接到的端口,默认是1883
-Ppw指定密码用于代理认证,使用此选项时必须有有效的用户名。
-qqos指定消息的服务质量,可以为0,1,2,默认是0.
–quiet如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
-ttopic
-uusername
-vverbose
–will-payload如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
–will-qos指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用.
–will-retain如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用.
–will-topic指定客户端意外断开时,Will消息发送到的主题。

报文种类

种类意义
1.连接请求(CONNECT)当一个从客户端到服务器的TCP/IP套接字连接被建立时,必须用一个连接流来创建一个协议级别的会话。
2.连接请求确认(CONNECTACK)连接请求确认报文(CONNECTACK)是服务器发给客户端,用以确认客户端的连接请求
3.发布报文(PUBLISH)客户端发布报文到服务器端,用来提供给有着不同需求的订阅者们。每个发布的报文都有一个主题,这是一个分层的命名空间,他定义了报文来源分类,方便订阅者订阅他们需要的主题。订阅者们可以注册自己的需要的报文类别。
4.发布确认报文(PUBACK)发布确认报文(PUBACK)是对服务质量级别为1的发布报文的应答。他可以是服务器对发布报文的客户端的报文确认,也可以是报文订阅者对发布报文的服务器的应答。
5.QoS 2消息流的第一部分,表示消息发布已记录(PUBREC)PUBREC报文是对服务质量级别为2的发布报文的应答。这是服务质量级别为2的协议流的第二个报文。PUBREC是由服务器端对发布报文的客户端的应答,或者是报文订阅者对发布报文的服务器的应答。
6.QoS 2消息流的第二部分,表示消息发布已释放(PUBREL)PUBREL是报文发布者对来自服务器的PUBREC报文的确认,或者是服务器对来自报文订阅者的PUBREC报文的确认。它是服务质量级别为2的协议流的第三个报文。
7.QoS 2消息流的第三部分,表示消息发布完成(PUBCOMP)PUBCOMP报文是服务器对报文发布者的PUBREL报文的应答,或者是报文订阅者对服务器的PUBREL报文的应答。它是服务质量级别为2的协议流的第四个也是最后一个报文。
8.订阅命名的主题(SUBSCRIBE)订阅报文(SUBSCRIBE)允许一个客户端在服务器上注册一个或多个感兴趣的主题名字。发布给这些主题的报文作为发布报文从服务器端交付给客户端。订阅报文也描述了订阅者想要收到的发布报文的服务质量等级。
9.订阅报文确认(SUBACK)当服务器收到客户端发来的订阅报文时,将发送订阅报文的确认报文给客户端。一个这样的确认报文包含一列被授予的服务质量等级。被授予的服务质量等级次序和对应的订阅报文中的主题名称的次序相符。
10.退订命名的主题(UNSUBSCRIBE)退订主题的报文是从客户端发往服务器端,用以退订命名的主题。
11.退订确认(UNSUBACK)退订确认报文是从服务器发往客户端,用以确认客户端发来的退订请求报文。
12.Ping请求、心跳(空闲时发一个)(PINGREQ)Ping请求报文是从连接的客户端发往服务器端,用来询问服务器端是否还存在。
13.Ping应答、确认心跳(PINGRESP)Ping应答报文是从服务器端发往Ping请求的客户端,对客户端的Ping请求进行确认。
14.断开通知、客户端终止连接前优雅地通知MQTT代理(DISCONNECT)断开通知报文是从客户端发往服务器端用来指明将要关闭它的TCP/IP连接,他允许彻底地断开,而非只是下线。如果客户端已经和干净会话标志集联系,那么所有先前关于客户端维护的信息将被丢弃。一个服务器在收到断开报文之后,不能依赖客户端关闭TCP/IP连接

扩展命令

  • 列出所有端口的情况
    netstat -ano
  • 查看被占用端口对应的PID
    netstat -aon|findstr “49157”

Linux netstat

  • 查看1883端口的连接情况,观察TCP状态图
    netstat -nalp|grep 1883 #
  • 查看1883端口的客户端连接数
    netstat -nalp|grep 1883|wc -l #

借鉴
MQTT–mosquitto使用详解

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远方那座山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值