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

我想让我的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 服务器没有接收到心跳包,那么服务器就认为设备掉线了

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

MQTT 遗嘱使用的更多相关文章

  1. 2-开发共享版APP(接入指南)-设备接入说明:快速接入

    https://www.cnblogs.com/yangfengwu/p/11249674.html 该APP安装包下载链接: http://www.mnif.cn/appapk/IotDevelop ...

  2. MQTT 协议学习:Retained(保留消息) 与 LWT(最后遗嘱)

    背景导入 让我们来看一下这个场景: 你有一个温度传感器,它每三个小时向一个 Topic 发布当前的温度.那么问题来了,有一个新的订阅者在它刚刚发布了当前温度之后订阅了这个主题,那么这个订阅端什么时候能 ...

  3. Mosquitto搭建Android推送服务(一)MQTT简介

    总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...

  4. MQTT V3.1--我的理解

    最近因为工作需要,需要对推送消息了解,因此对MQTT进行了整理,这里更多的是对MQTT英文版的翻译和理解. MQTT(Message Queue Telemetry Transport),遥测传输协议 ...

  5. MQTT协议(一)

    MQTT(Message Queue Telemetry Transport),遥测传输协议,提供订阅/发布模式,更为简约.轻量,易于使用,针对受限环境(带宽低.网络延迟高.网络通信不稳定),可以简单 ...

  6. MQTT——连接报文

    学习MQTT协议.如果只是看了相关文档就认为可以了.那是一个错误的观念.笔者为了能更好的去理解MQTT协议.看了不少相关的开源Broker的项目.可惜这些项目一般都是不完全的.不过从这些项目中笔者至少 ...

  7. MQTT——编写连接报文

    笔者在上一章对连接报文进行了相关的讲解.这一章笔者想写一个连接报文的例子来加深理解.本来这一章也应该在上一章出现的.可是笔者怕太长了.不好方便阅.所以决定分俩章来.正如笔者上一章所讲的.笔者会用Net ...

  8. Paho -物联网 MQTT C Cient的实现和详解

    概述   在文章Paho - MQTT C Cient的实现中,我介绍了如何使用Paho开源项目创建MQTTClient_pulish客户端.但只是简单的介绍了使用方法,而且客户端的结果与之前介绍的并 ...

  9. 什么是MQTT协议?

    MQTT协议介绍 MQTT协议是什么? MQTT(Message Queuing Telemetry Transport Protocol)的全称是消息队列遥感传输协议的缩写,是一种基于轻量级代理的发 ...

随机推荐

  1. word表格中怎么添加递增的序号

    word2013表格中怎么添加递增的序号?word2013表格中想要让第一类自动显示递增序号,该怎么操作呢?下面我们就来分享两种方法,需要的朋友可以参考下 工具/原料   word2013 通过项目编 ...

  2. java注解注意点

    注意:以后工作中代码中 不允许出现警告 自定义注解 1:自定义注解并没有发挥它的作用,而Eclipse自带的注解通过反射另外有一套代码,可以发挥它的作用,例如:跟踪代码...... 2:如果自定义的代 ...

  3. redis监控工具汇总

    redis-stat redis-stat是一个比较有名的redis指标可视化的监控工具,采用ruby开发,基于redis的info命令来统计,不影响redis性能. docker运行 docker ...

  4. 相似文档查找算法之 simHash及其 java 实现

    传统的 hash 算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法.产生的两个签名,如果相等,说明原始内容在一定概 率 下是相等的:如果不相等,除了说明原始内容不相等外 ...

  5. spring加载多个配置文件如何配置

    为应用指定多个配置文件: 多个配置文件的关系: 并列 包含 并列关系 即有多个配置文件,需要同时加载这多个配置文件: 可以使用可变参数,数组和统配符进行加载: 可变参数 String config1 ...

  6. localStorage&sessionStorage&Cookie

    localStorage.sessionStorage.Cookie三者区别如下:

  7. 物料管理混乱怎么办?APS系统帮你实现高效运输

    APS系统可以高效地管理.控制分销中心并保证产品可订货.可盈利.能力可用.分销计划帮助企业分析原始信息,然后企业能够确定如何优化分销成本或者根据生产能力和成本提高客户服务水平. 今天成功的企业为了取得 ...

  8. 什么是SAP Intelligent Robitic Process Automation - iRPA

    所谓智慧企业,一个特征就是具备将复杂但低附加值的重复流程通过自动化的方式完成的能力.通过自动化,从而将宝贵的人力资源投入到更高附加值的工作中去,比如提供产品和服务的品质,提升用户体验.SAPGUI时代 ...

  9. Java里面获取当前服务器(linux环境)的IP地址--与请求者的真实IP

    package com.wfd360.Util; import javax.servlet.http.HttpServletRequest; import java.net.Inet4Address; ...

  10. php的微信公众平台开发接口类

    <?php define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if ...