1.正常连接
(1)服务器根据连接消息头中带的【keepAlive】,设置心跳间隔;
(2)连接时清除会话【cleansession】设置为【true】。
2.心跳机制
(1)当客户端检测到心跳时间超过【keepAlive】时,必须向【Broker】发送心跳报文【PingReq】,
【Broker】收到心跳后响应【PingResp】;
(2)若【Broker】超过【1.5*keepAlive】没收到心跳请求【PingReq】则断开连接, 同理,若设备超过一定时间仍没有收到心跳响应【PingResp】则断开连接。
3.发布主题消息
(1)通讯质量使用【QOS1】;
(2)主题(topic)为【/gate/push/result】;
(3)发布消息后,【Broker】会响应【PubAck】;
4.订阅主题消息
(1)通讯质量使用【QOS0】;
(2)订阅主题(topic)为【/gate/设备序列号/command】;
(3)消费响应超时时间为【4s】;
(4)消费结果通过发布主题消息进行回复,回复报文中需带上与消费报文中的【msgId】;
(5)出现接收到一次报文后,后续报文接收不到问题,检测一下消费第一次接收到的订阅消息后,取信息后是否把整个缓存池干掉了。