MQTT--入门(二)

http://www.cnblogs.com/Anker/p/5353221.html


1、消息模型:

 MQTT是一种基于代理的发布/订阅的消息协议。提供一对多的消息分发,解除应用程序耦合。一个发布者可以对应多个订阅者,当发布者发生变化的时候,他可以将消息一一通知给所有的订阅者。这种模式提供了更大的网络扩展性和更动态的网络拓扑。
这里写图片描述

2、消息质量

  MQTT提供三种质量的服务:
  1)至多一次,可能会出现丢包的现象。使用在对实时性要求不高的情况。这一级别可应用于如下情景,如环境传感器数据,丢失一次读记录无所谓,因为很快下一次读记录就会产生。

  2)至少一次,保证包会到达目的地,但是可能出现重包。

  3)正好一次,保证包会到达目的地,且不会出现重包的现象。这一级别可用于如计费系统等场景,在计费系统中,消息丢失或重复可能会导致生成错误的费用。

3、主题名称

  主题名称(Topic name)用来标识已发布消息的信息的渠道。订阅者用它来确定接收到所关心的信息。它是一个分层的结构,用斜线“/”作为分隔符。有两种通配符可以在主题发布、订阅时使用:“#”和“+”。前者可以通配多层结构,而后者只能通配一层结构。例如一个topic : “a/b/c”,则“a/+/c”和“a/#”都可以和它相等。发布不支持模糊匹配,必须是确定的主题。

4、遗属

  当一个客户端断开连接的时候,它希望客户端可以发送它指定的消息。该消息和普通消息的结构相同。通过设置该位并填入和信息相关的内容即可。

6、消息类型

名字流动方向描述
Reserved0禁止保留
Connect1客户端到服务端客户端到服务端的连接请求
ConnACK2服务端到客户端服务端对连接请求的响应
Publish3两个方向都允许发布消息(QoS0)
puback4两个方向都允许对QoS1发布消息的回应
pubRec5两个方向都允许收到发布消息(QoS2保证传输第一步)
pubRel6两个方向都允许释放发布消息(QoS2保证传输第二步)
pubComp7两个方向都允许完成发布消息(QoS2保证传输第三步)
subscribe8客户端到服务端客户端订阅请求
subBack9服务端到客户端订阅请求的确认
unsubscribe10客户端到服务端客户端取消订阅请求
unsubBack11服务端到客户端取消订阅请求确认
pingReq12客户端到服务端Ping(心跳)请求(保持连接)
pingResp13服务端到客户端Ping(心跳)响应
disconnect14客户端到服务端客户端断开连接
reserved15禁止保留

开发一个MQTT库需要提供如下命令:

Connect :当一个TCP/IP套接字在服务器端和客户端连接建立时需要使用的命令。

publish : 是由客户端向服务端发送,告诉服务器端自己感兴趣的Topic。每一个publishMessage 都会与一个Topic的名字联系在一起。

pubRec: 是publish命令的响应,只不过使用了2级QoS协议。它是2级QoS协议的第二条消息

pubRel: 是2级QoS协议的第三条消息

publComp: 是2级QoS协议的第四条消息

subscribe: 允许一个客户端注册自已感兴趣的Topic 名字,发布到这些Topic的消息会以publish Message的形式由服务器端发送给客户端。

unsubscribe: 从客户端到服务器端,退订一个Topic。

Ping: 有客户端向服务器端发送的“are you alive”的消息。

disconnect:断开这个TCP/IP协议

3、MQTT服务端和客户端

https://github.com/mqtt/mqtt.github.io/wiki/servers

https://github.com/mqtt/mqtt.github.io/wiki/libraries

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ESP32-C3是一款基于ESP32系列的微控制器,它支持MQTT协议。MQTT是一种轻量级的消息传输协议,用于在物联网设备之间进行可靠的通信。在ESP32-C3上使用MQTT协议可以实现设备与设备之间的数据传输和控制。 关于ESP32-C3和MQTT协议的使用,可以参考以下内容: 1. 基础介绍:了解MQTT协议的基本概念和ESP-MQTT的基础知识,包括SSL和MQTT over WebSocket等内容。\[1\] 2. 示例测试:可以使用测试工具和示例代码进行测试和分析。测试工具可以帮助你模拟MQTT通信场景,示例代码可以帮助你理解和实现ESP32-C3与MQTT的连接和通信。\[2\] 3. MQTT over WebSocket:了解MQTT over WebSocket的概念和用途,它可以在MQTT设备和Web端之间建立连接和通信。\[2\]\[3\] 总结来说,ESP32-C3可以通过MQTT协议实现与其他设备之间的通信。你可以使用MQTT over WebSocket来支持ESP32-C3与Web端的通信。希望这些信息对你有所帮助。 #### 引用[.reference_title] - *1* *2* *3* [ESP32-C3入门教程 网络 篇(三、 MQTT 协议基础介绍及测试)](https://blog.csdn.net/weixin_42328389/article/details/123049977)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值