mqtt 获取所有topic_MQTT协议解析

这篇属于IM三剑客中的第二篇,前面一篇主要讲解了通用IM的一些架构的知识,这边主要讲解MQTT协议的细节,最后一篇将会着重介绍了MQTT Broker的Go语言实现。通用IM架构Go实现Mqtt broker MQTT协议以其效率高,语义完善而著名,非常适合使用在移动设备中,可以大幅度的减少耗电量。相对于TCP,语义更加丰富,额外的overload小,最少只需要2byte;相对于其他的应用层协...
摘要由CSDN通过智能技术生成

cc75b22c59090febed04131f6514dc0e.png
这篇属于IM三剑客中的第二篇,前面一篇主要讲解了通用IM的一些架构的知识,这边主要讲解 MQTT协议的细节,最后一篇将会着重介绍了MQTT Broker的Go语言实现。
  • 通用IM架构
  • Go实现Mqtt broker

MQTT协议以其效率高,语义完善而著名,非常适合使用在移动设备中,可以大幅度的减少耗电量。相对于TCP,语义更加丰富,额外的overload小,最少只需要2byte;相对于其他的应用层协议Websocket等,头部简单,包体积更小。

相关术语

Client(客户端)

客户端通常是用户手中的移动设备,传感器等,客户端在整个mqtt流程中既有publisher的作用,还有subscriber的作用,当作publisher的时候,客户端可以进行数据的上报,作为subscriber的时候,可以接收服务端推送的消息。

Session

持久化的回话,一个session对应一个client,session会把还未来得及投递的消息进行持久化,以便下次client连接时进行推送。

Broker

服务器端,client连接的对象,保存有所有的subscriber和publisher信息及其订阅关系,同时也用作消息的分发功能。

Subscription

订阅关系,client可以依据topic进行订阅,可以接收发布到该topic的信息。

Topic

Topic用作订阅关系的维系,类似于channel的概念。

Topic Filter

主题过滤器,在MQTT中,topic可以是精确订阅,也可以是模糊订阅,发布到一个topic的消息,通过主题过滤器获取所有匹配的topic进行投递。

Publisher

发布者,通常是客户端,向broker发布消息,borker收到消息后依据topic进行投递。

Subscriber

订阅者,通常是客户端,订阅topic以接收broker分发的消息。

数据解包

MQTT数据包共分为三部分,FixedHeader, Variable HeaderPayload, 其中只有FixedHeader是必须的,Variable HeaderPayload部分是可选的。这部分着重介绍FixedHeader,可选部分将在下面的详细介绍中涉及。

固定头部的长度为2...5

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值