• MQTT控制---subscribe


    连接服务端

      客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅

    固定报头

      报头长度:2 Bytes

      1、报头控制类型(0x82)

      报文SUBSCRIBE控制报固定报头的第3、2、1、0位是保留位,必须设置为0,、0、1、0。

      服务器必须将其它的任何值当做是不合法的并关闭连接。

      2、剩余长度

      等于可变报头的长度加上有效载荷的长度。

    可变报头

      可变报头包含客户端标识符,红色标记。(eg:82 09 00 02 00 04 30 37 35 35 00)

      1、标识符 。

      如上面的红色标记部分。

    有效载荷

      SUBSCRIBE报文的有效载荷包含一个主题过滤器列表,表示客户端想要订阅的主题。

      每一个过滤器后面跟着一个字节的QoS。

      SUBSCRIBE报文的有效载荷必须包含至少一对过滤器和QoS组合。

      每对组合如下格式:

      QoS的高6位字节保留。

    响应

      server收到SUBSCRIBE报文时,必须使用SUBACK报文响应。

      SUBACK报文必须和等待确认的SUBSCRIBE报文有相同的报文标识符。

    -----------------------------------------------------------------------------------------------------------------------

    SUBACK-订阅确认

      server发送给client的SUBACK,用于确认它已经收到并且正在处理SUBSCRIBE报文。

      SUBACK报文包含一个返回码清单,指定了SUBSCRIBE请求的每个订阅被授予的最大QoS等级。

      固定报头

      报头格式描述如下:

      剩余长度字段 = 可变报头的长度 + 有效载荷的长度

      可变报头

      可变报头包含标识符:(90 03 00 01 00)

      有效载荷

        有效载荷包含一个返回码清单,每个返回码对应等待确认的SUBSCRIBE报文中的一个主题过滤器。

        允许的返回值:

        0x00 - 最大QoS 0

        0x01 - 成功,最大QoS 1

        0x02 - 成功,最大QoS 2

        0x80 - 失败

      0x00、0x01、0x02、0x80之外的SUBACK返回码都是保留的,不能使用。

  • 相关阅读:
    go-elasticsearch 来自官方的 golang es client
    nginx unit nodejs 模块试用(续)
    WebSocket-Over-HTTP Protocol
    pushpin Server-sent events && openresty 集成试用
    Rendering on the Web
    pushpin openresty 集成试用
    100 webhook implementations
    streamdataio 实时数据分发平台
    Generic Realtime Intermediary Protocol
    Pushpin How it works
  • 原文地址:https://www.cnblogs.com/daiker/p/6511385.html
Copyright © 2020-2023  润新知