MQTT: Will Message

2024-09-03 06:20
文章标签 message mqtt

本文主要是介绍MQTT: Will Message,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Will Message (遗嘱信息)

Will 消息需要被服务器保存在服务器端,和当前网络连接关联。

Will 消息必须在后续网络连接断开之后被分发出去(Publish), 除非服务器收到了来自客户端的 Disconnect 包。

发布 Will信息的情形包括但不限于:

  • 服务器检测到客户端连接中断或者 I/O 错误。
  • 客户端没有按照约定的 Keep-Alive 时间发送 Ping 消息。
  • 客户断开了网络连接,但是没有发送 DISCONNECT 消息。
  • 服务器端应为协议错误关闭了客户端的网络连接

当客户端主动的通过发送 DISCONNECT 断开了网络连接的情况下, Will 消息是不应该被服务器分发给订阅者的。

如下情况下 Will 消息需要从 Session 中移除;

  • 在服务器分发了 Will 消息之后
  • 服务器收到了来自客户端的 DISCONNECT 消息

在需要的时候,服务器端应该尽快的分发 Will 消息。当时如果在发送之前或者发送中,服务器出错,可以将 Will 消息的发送时机延迟到服务器重启之后。


Will QoS


Will 消息的 QoS 值可以是: 0, 1,2.


Will Retain


参考 PUBLISH RETAIN 章节。

这篇关于MQTT: Will Message的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132269

相关文章

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

HTTP协议 HTTPS协议 MQTT协议介绍

目录 一.HTTP协议 1. HTTP 协议介绍 基本介绍: 协议:  注意: 2. HTTP 协议的工作过程 基础术语: 客户端: 主动发起网络请求的一端 服务器: 被动接收网络请求的一端 请求: 客户端给服务器发送的数据 响应: 服务器给客户端返回的数据 HTTP 协议的重要特点: 一发一收,一问一答 注意: 网络编程中,除了一发一收之外,还有其它的模式 二.HTT

【知识分享】MQTT实战-使用mosquitto客户端连接emqx服务器

一、简介     MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的通信协议,旨在实现物联网设备之间的低带宽、高延迟的通信。MQTT协议设计简洁,使用TCP/IP协议进行通信,适用于各种网络环境,尤其适合在有限的网络带宽和不稳定的网络连接条件下进行通信。     MQTT的工作原理是基于发布/订阅模式的消息传递,它包括两个主要

基于 RocketMQ 的云原生 MQTT 消息引擎设计

作者:沁君 概述 随着智能家居、工业互联网和车联网的迅猛发展,面向 IoT(物联网)设备类的消息通讯需求正在经历前所未有的增长。在这样的背景下,高效和可靠的消息传输标准成为了枢纽。MQTT 协议作为新一代物联网场景中得到广泛认可的协议,正逐渐成为行业标准。 本次我们将介绍搭建在 RocketMQ 基础上实现的 MQTT 核心设计,本文重点分析 RocketMQ 如何适应这些变化,通过优化存储

MQTT协议中信息长度MSG len字段分析

截图自: 主要是说数据字节长度的计算: 每个字节由1个持续位和7个数据位组成:如果持续位为1,表示接下来的一个字节仍然表示长度的一部分 7个数据位表示的数据     0-127   共计128个数字 所以如上图的表格所示 1个字节,2个字节,3个字节,4个字节的数据范围 切记:MQTT长度的表示范围 最多使用4个字节  故这里存在着数据长度的限制  (不过真心牛掰! 试试Q

MQTT broker搭建并用SSL加密

系统为centos,基于emqx搭建broker,流程参考官方。 安装好后,用ssl加密。 进入/etc/emqx/certs,可以看到 分别为 cacert.pem CA 文件cert.pem 服务端证书key.pem 服务端keyclient-cert.pem 客户端证书client-key.pem 客户端key 编辑emqx配置:vim /etc/emqx/emqx.conf,添加s

构建智能门禁安防系统:树莓派 4B、OpenCV、SQLite 和 MQTT 的应用(代码示例)

一、项目概述 1.1 项目目标和用途 本项目旨在开发一个智能门禁安防系统,该系统利用摄像头和人脸识别技术,结合本地人脸库,实现对进出人员的自动识别和管理。系统能够实时记录进出人员的信息,并对未注册人员进行警报提示。通过与物联网平台的集成,用户可以远程监控和管理门禁系统,提升安全性和管理效率。 1.2 解决的问题和价值 传统的门禁系统往往依赖于钥匙或密码,存在安全隐患和管理不便的问题。本项目

MQTT.js 简述

MQTT.js 简述 简介 MQTT 是一种轻量级的消息传输协议,常用于物联网(IoT)设备间的通信。mqtt.js 是一个 JavaScript 库,支持在 Node.js 和浏览器中使用,用于通过 MQTT 协议与 MQTT Broker 进行通信。 安装 在 Node.js 中,可以通过以下命令安装: npm install mqtt --save 在浏览器中使用: <s

SDUT1500_Message Flood(字典树)

Message Flood Time Limit: 1500MS Memory limit: 65536K 题目描述 Well, how do you feel about mobile phone? Your answer would probably be something like that "It's so convenient and benefits peop

鹏程万里----mqtt

今天测试ubuntu安装mqtt服务器,其他都没啥说的,就是测试的时候 订阅里不要加-v,不然就会出现收不到数据 mosquitto_sub -h 192.168.10.80 -t "mqtt" 既然要搞mqtt那就必须得有个数据库来做数据持久化,于是我在ubuntu上装了个mongodb,遇到一点小问题 修改ip让外部能够访问,得修改./etc/mongodb.conf文件里的ip,