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 服务器没有接收到心跳包,那么服务器就认为设备掉线了
此时服务器会把掉线的那台设备的遗嘱发给 相应的上位机
MQTT 遗嘱使用的更多相关文章
- 2-开发共享版APP(接入指南)-设备接入说明:快速接入
https://www.cnblogs.com/yangfengwu/p/11249674.html 该APP安装包下载链接: http://www.mnif.cn/appapk/IotDevelop ...
- MQTT 协议学习:Retained(保留消息) 与 LWT(最后遗嘱)
背景导入 让我们来看一下这个场景: 你有一个温度传感器,它每三个小时向一个 Topic 发布当前的温度.那么问题来了,有一个新的订阅者在它刚刚发布了当前温度之后订阅了这个主题,那么这个订阅端什么时候能 ...
- Mosquitto搭建Android推送服务(一)MQTT简介
总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...
- MQTT V3.1--我的理解
最近因为工作需要,需要对推送消息了解,因此对MQTT进行了整理,这里更多的是对MQTT英文版的翻译和理解. MQTT(Message Queue Telemetry Transport),遥测传输协议 ...
- MQTT协议(一)
MQTT(Message Queue Telemetry Transport),遥测传输协议,提供订阅/发布模式,更为简约.轻量,易于使用,针对受限环境(带宽低.网络延迟高.网络通信不稳定),可以简单 ...
- MQTT——连接报文
学习MQTT协议.如果只是看了相关文档就认为可以了.那是一个错误的观念.笔者为了能更好的去理解MQTT协议.看了不少相关的开源Broker的项目.可惜这些项目一般都是不完全的.不过从这些项目中笔者至少 ...
- MQTT——编写连接报文
笔者在上一章对连接报文进行了相关的讲解.这一章笔者想写一个连接报文的例子来加深理解.本来这一章也应该在上一章出现的.可是笔者怕太长了.不好方便阅.所以决定分俩章来.正如笔者上一章所讲的.笔者会用Net ...
- Paho -物联网 MQTT C Cient的实现和详解
概述 在文章Paho - MQTT C Cient的实现中,我介绍了如何使用Paho开源项目创建MQTTClient_pulish客户端.但只是简单的介绍了使用方法,而且客户端的结果与之前介绍的并 ...
- 什么是MQTT协议?
MQTT协议介绍 MQTT协议是什么? MQTT(Message Queuing Telemetry Transport Protocol)的全称是消息队列遥感传输协议的缩写,是一种基于轻量级代理的发 ...
随机推荐
- [动图演示]Redis 持久化 RDB/AOF 详解与实践【华为云技术分享】
Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.它支持的数据类型很丰富,如字符串.链表.集 合.以及散列等,并且还支持多种排序功能. 什么叫持 ...
- 用HTML、CSS、JS制作圆形进度条(无动画效果)
逻辑 1.首先有一个圆:蓝色的纯净的圆,效果: 2.再来两个半圆,左边一个,右边一个将此蓝色的圆盖住,效果: 此时将右半圆旋转60°,就会漏出底圆,效果: 然后我们再用一个比底圆小的圆去覆盖这个大 ...
- window 包管理器--Chocolatey
Chocolatey 介绍 在 Linux 下,大家喜欢用 apt-get 来安装应用程序,如今在 windows 下,大家可以使用 Chocolatey 来快速下载搭建一个开发环境. Chocola ...
- js实现输入密码之延迟星号和点击按钮显示或隐藏
缘由 手机打开segmentfalut时,长时间不登陆了,提示要重新登陆,输入的过程中看到输入密码时,延迟后再变成密文,很好奇,所以捣鼓了一下.本文实现了两种密码展示 代码实现 1 先明后密 js实现 ...
- ansible 中 JAVA_HOME不生效问题
解决方案 ~/.bash_profile 是交互式.login 方式进入 bash 运行的,意思是只有用户登录时才会生效. ~/.bashrc 是交互式 non-login 方式进入 bash 运行的 ...
- Xcode调试打印方法
1 NSLog 在调试的过程中,最常用的查看变量值的方法是NSLog 整数 int a = 1; NSLog("%d", a); 浮点数 float b = 1.11; NSLog ...
- 通过公网ip访问虚拟机web服务
工作中有需要进行通过外网ip访问虚拟机上的web服务,通过查阅资料,将配置过程整理如下: 思路:通过路由器的端口映射访问虚拟机上的web服务 1. 前提是在虚拟机上的web服务已经部署好,并且可以通过 ...
- java-springCloud环境配置
SpringCloud注解和配置以及pom依赖说明 https://www.cnblogs.com/zhuwenjoyce/p/9663324.html https://blog.csdn.net/s ...
- Spark实现二次排序
一.代码实现 package big.data.analyse.scala.secondsort import org.apache.log4j.{Level, Logger} import org. ...
- jhipster技术栈研究
背景: 公司新的微服务项目都用jhipster脚手架来开发,这篇博客是jhipster里面涉及到技术的汇总目录 一.官方文档中涉及到的技术栈 前端技术栈 Angular / React / Vue R ...