利尔达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的消息仍然可以接收到。如果同个主题发了多条就接收多条,一条不差,照单全收。


 

posted @ 2022-01-17 18:41  429512065  阅读(289)  评论(0编辑  收藏  举报