利尔达NT90的 CAT1模组 使用MQTT连接 onenet studio
1. 先添加产品
添加设备
2. MQ消息队列是什么用途?只是定时下发数据的?是发给第三方服务器的,比如设备上线,那么服务器就会收到一个推送消息
3. 可以使用 psotman 这个软件,添加设备
4. 使用 mqtt.fx 测试一下连接,产品ID 和设备key 可以在设备详情里面看到
然后用模拟器生成MQTT的密码
5. 用板子登录试试,可以成功
6. 第5个参数是CleanSession
CleanSession 标记
在Connect时,由客户端设置
0 —— 开启会话重用机制。网络断开重连后,恢复之前的Session信息。需要客户端和服务器有相关Session持久化机制。
1 —— 关闭会话重用机制。每次Connect都是一个新Session,会话仅持续和网络连接同样长的时间。
问:问个mqtt协议的问题,cleansession为什么要区别0和1,他们各自的用途和应用场景是什么?
答:为 1 的时候,服务器每次session 都要重新建立,这也是大多数的场景使用情况;
为 0 的时候可以复用历史的session, 服务端session 是有状态的,可以记录很多信息。
为 0的时候就可以保留 session 了,这个保留的session 是有用的,如果服务端实现了的话,像历史没发出去的消息等等,鉴权信息,等等,可以接着使用。你可以类比我们登陆网页的那个session,没过期的话,可以不用登陆了。
说白了,想接收离线消息,就必须使用cleansession=0,这个就是=0的应用场景:
不管clean session的值是什么,当终端设备离线时,QoS=0,1,2的消息一律接收不到。
当clean session的值为1,当终端设备离线再上线时,离线期间发来QoS=0,1,2的消息一律接收不到。
当clean session的值为0,当终端设备离线再上线时,离线期间发来QoS=0,1,2的消息仍然可以接收到。如果同个主题发了多条就接收多条,一条不差,照单全收。