订阅主题和订阅确认
SUBSCRIBE——订阅主题
之前的CONNECT报文,分为
- 固定报头:必须存在,用于描述报文信息。里面有指出什么类型的报文,报文的等级。
- 可变报头:不一定存在。主要看什么样子类型的报文。
- 有效载荷部分:这是内容,也是通信信息的存放的地方,只是有时候还会存放一些额外的信息,如客户ID。
SUBSCRIBE报文
客户端向服务端订阅!
- 服务端发送PUBLISH报文给客户端。
- SUBSCRIBE报文指定了最大的QoS等级(服务质量要求)。
固定报头
可变报头
有效载荷
主题过滤器
服务质量要求(Qos等级)
使用订阅主题的时候一定要connect上服务器!
客户端向服务器订阅!
SUBACK——订阅确认
取消订阅UNSUBSCRIBE和取消订阅确认
客户端向服务端取消订阅!
取消订阅确认UNSUBACK
发布消息PUBLISH
PUBLISH控制报文是指从客户端向服务端或者服务端向客户端传输一个应用消息。
可变报头
主题名Topic Name:用于识别有效载荷数据应该被发布到哪一个信息通道。
报文标识符Packet Identifer只有当QoS等级是1或2时,报文标识符(Packet Identifer)字段才能出现在PUBLISH报文中。
有效载荷
有效载荷包含将发布的应用消息。
数据的内容和格式是应用特定的。
特定的格式:JSON
响应
动作
客户端使用PUBLISH报文发送应用消息给服务端,目的是分发到其它订阅匹配的客户端。
服务端使用PUBLISH报文发送应用消息给每一个订阅匹配的客户端。
JSON
JavaScript Object Notation,JS对象简谱,是一种轻量级的数据交换格式,JSON指的是JavaScript对象表示法。
{
"firstName":"John"
}
- {}:大括号表示对象——键
- “”:双引号内表示属性或者值——指
键:必须是字符串
值:字符串、数组[]、对象{}、数字等
{
"method":"thing.event.property.post",
"id":"00000001",
"params":{"PwoerSwitch":0},
"version":"1.0.0"
}
多个键之间用,表示
不要复制长度到网络调试助手
消息转换成十六进制