当前位置: 首页 > news >正文

第十二章 MQTT会话

系列文章目录

第一章 总体概述
第二章 在实体机上安装ubuntu
第三章 Windows远程连接ubuntu
第四章 使用Docker安装和运行EMQX
第五章 Docker卸载EMQX
第六章 EMQX客户端MQTTX Desktop的安装与使用
第七章 EMQX客户端MQTTX CLI的安装与使用
第八章 Wireshark工具的安装与使用
第九章 MQTT报文
第十章 MQTT消息质量等级QoS
第十一章 MQTT主题
第十二章 MQTT会话


文章目录

  • 系列文章目录
  • 前言
  • 一、常见配置参数
    • 1. Clean Start
    • 2. Session Expiry Interval
  • 二、会话演示
    • 1.在MQTTX中设置关闭自动重订阅功能
    • 2.创建一个名为 `sub` 的客户端连接
    • 3.创建一个名为 `pub` 的客户端
    • 4.测试会话缓存
  • 总结


前言

MQTT客户端和MQTT服务器之间的连接被称为会话。每个MQTT客户端都可以启动一个或多个会话,通过会话可以实现客户端和服务器之间的消息传递。


一、常见配置参数

1. Clean Start

Clean Start作用:用于指示客户端在和服务器建立连接的时候应该尝试恢复之前的会话还是直接创建全新的会话。

常见取值以及含义:

0:服务端存在一个关联此客户端标识符(Client ID)的会话,服务端必须基于此会话的状态恢复与客户端的通信(之前的订阅信息会再次绑定,并且会接收到客户端断开时,发布者所发布的消息)。如果不存在任何关联此客户端标识符的会话,服务端必须创建一个新的会话。

1:客户端和服务端必须丢弃任何已存在的会话,并开始一个新的会话。

2. Session Expiry Interval

Session Expiry Interval 决定了会话状态数据在服务端的存储时长。

常见取值:

  • 没有指定此属性或者设置为 0,表示会话将在网络连接断开时立即结束。
  • 设置为一个大于 0 的值,则表示会话将在网络连接断开的多少秒之后过期。
  • 设置为 0xFFFFFFFF,即 Session Expiry Interval 属性能够设置的最大值时,表示会话数据永不过期。

服务端使用 Client ID 来唯一地标识每个会话,如果客户端想要在连接时复用之前的会话,那么必须使用与此前一致的 Client ID。

二、会话演示

1.在MQTTX中设置关闭自动重订阅功能

在这里插入图片描述

2.创建一个名为 sub 的客户端连接

将 MQTT Version 设置为 5.0,开启 Clean Start,Session Expiry Interval 设置为 300 秒,然后链接到MQTT的服务端,并订阅主题 mqttx_290c747e/test
在这里插入图片描述
在这里插入图片描述

3.创建一个名为 pub 的客户端

pub客户端连接向主题 mqttx_290c747e/test 发布消息,消息内容可以随意设置,我们将看到 sub 客户端收到这些消息。这时我们断开 sub

客户端的连接,然后继续通过 pub 客户端发布消息:
在这里插入图片描述

4.测试会话缓存

接下来,我们将 sub 客户端的 Clean Start 选项关闭,并保持 Session Expiry Interval 为 300 秒,然后再次连接。我们将看到 sub 客户端陆续收到我们在它离线期间发布的消息:
在这里插入图片描述
在这里插入图片描述
以上就是 MQTT 会话为离线客户端缓存消息的能力


总结

以上,就是MQTT会话的介绍。

相关文章:

  • Q: dify知识库模块主要库表和字段
  • selenium自动化浏览器
  • JavaScript字符串方法全面指南:从基础到高级应用
  • 【软件设计】通过软件设计提高 Flash 的擦写次数
  • 003图书个性化推荐系统技术剖析:打造智能借阅新体验
  • 企业数字化转型的6大核心要素:从战略到落地的系统方法论
  • 对COM组件的调用返回错误 HRESULT E_FAIL
  • SAR ADC 比较器噪声分析(二)
  • Replacing iptables with eBPF in Kubernetes with Cilium
  • [特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!
  • Co-IP—验证蛋白互作的不二之选
  • MySQL之约束和表的增删查改
  • [STM32问题解决(2)]STM32通过串口与PC通信,打开串口助手后无法在打开状态下下载程序和复位STM32
  • Rerank的评测
  • 大模型-modelscope下载和使用chatglm3-6b模型
  • 【JUC】深入解析 JUC 并发编程:单例模式、懒汉模式、饿汉模式、及懒汉模式线程安全问题解析和使用 volatile 解决内存可见性问题与指令重排序问题
  • C++八股 —— 手撕线程池
  • Java限制单价小数位数方法
  • GitLens 教学(学习更新中)
  • 2025年渗透测试面试题总结-匿名[校招]红队攻防工程师(题目+回答)
  • 外国网站怎么做/网站免费下载安装
  • 做网站代理能赚钱吗/关键词排名优化公司哪家强
  • 专业网站建设公司推荐/百度品牌专区
  • 网吧网站怎么做的/百度资源提交
  • 开发一个交易平台需要多少钱/百度优化
  • 网页制作与网站建设宝典 pdf/北京厦门网站优化