• MQTT遗嘱


    大部分人应该有这个需求:

    我想让我的APP或者上位机或者网页一登录的时候获取设备的状态   在线还是离线

    设备端只需要这样设置

    注意:MQTT本身有遗嘱设置

    所以大家可以设置遗嘱 ,注意哈,发布的主题自己随意哈,假设是aaaaa  假设设置的遗嘱是   {data:state,state:offline}   注意遗嘱的retain 必须设置为1 ,即让服务器保留这个消息

    如果这样设置了,那么只要 设备掉线了,服务器就会向订阅aaaaa主题的APP或者上位机或者网页发送{data:state,state:offline} 

    但是只这样设置还不行,因为你会发现每次APP或者上位机或者网页只要一启动就会收到{data:state,state:offline} 

    所以需要下一步

    在设备成功连接MQTT的时候主动发个消息,发送的主题必须和上面一样哈aaaaa  假设消息是 {data:state,state:online}  注意消息的retain 必须设置为1 ,即让服务器保留这个消息

    这样的话,就可以了,只要APP或者上位机或者网页一启动,那么所有设备的当前状态都会主动的上来了

    可以看一下我ESP8266 设置的,无论用的啥子语言开发的,自行找API实现就可以

     然后说明一点

    MQTT都有心跳包时间实际上就是每隔多少时间向服务器 发送C0 00

    服务器判断客户端掉线是:

    假设设置的心跳包是 5S

    那么如果超过 5*1.5 = 7.5S 服务器没有接收到心跳包,那么服务器就认为设备掉线了

    此时服务器会把掉线的那台设备的遗嘱发给 相应的上位机

     文章转自:https://www.cnblogs.com/yangfengwu/p/11241776.html感谢!!!

  • 相关阅读:
    HDOJ 4747 Mex
    HDU 1203 I NEED A OFFER!
    HDU 2616 Kill the monster
    HDU 3496 Watch The Movie
    Codeforces 347A A. Difference Row
    Codeforces 347B B. Fixed Points
    Codeforces 372B B. Hungry Sequence
    HDU 1476 Sudoku Killer
    HDU 1987 How many ways
    HDU 2564 词组缩写
  • 原文地址:https://www.cnblogs.com/fw-qql/p/14040967.html
Copyright © 2020-2023  润新知