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


  • 相关阅读:
    Delphi XE2 update4 很快就要来了
    树型菜单表的合并。
    VS宏 之 选中解决方案中的文件
    Mvc,接收复杂对象。
    SQL 2008 CLR开发自定义聚合函数
    数据库主键按业务规则生成的解决方案。
    一些独特的语言思考
    vs环境设置
    SqlServer 2005+ 开发问题
    记录 VS 中的生成时间
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/15814821.html
Copyright © 2020-2023  润新知