MQTT报文协议
之前一篇文章讲述了关于后台服务器和设备之间的通信的博客(链接),现在深入具体的协议报文以及一些代码实现。
服务器发送报文
根据topic区分设备和版本:
报文头(区分报文是谁发送的):
- 服务器上报
- 设备上报
数据区
- 功能码(让设备要执行的一些操作)
- 时间戳(校验发送与接收时间差,超时的就废弃掉)
- PID(流水号,识别整个流程)
- MID(信息号,区分信息发送顺序)
- 数据长度
- 数据
校验区
- 检验报文完整性
封装数据后台代码
public static byte [] getData2Send(ServerProtocolType type, int pid, Date lastCalibrationTime) throws AlertException {
byte [] buf