普通消息:普通消息在发送之前其所对应的主题如果不存在订阅者,普通消息MQTT服务器会直接将其丢弃。
保留消息:保留消息可以保留在 MQTT 服务器中。任何新的订阅者订阅与该保留消息中的主题匹配的主题时,都会立即接收到该消息,即使这个消息是在它们订阅主题之前
发布的。
当客户端订阅主题时,如果服务端存在该主题匹配的保留消息,则该保留消息将被立即发送给该客户端。
保留消息的常见使用场景:
1、智能家居设备的状态只有在变更时才会上报,但是控制端需要在上线后就能获取到设备的状态;
2、传感器上报数据的间隔太长,但是订阅者需要在订阅后立即获取到最新的数据;
3、传感器的版本号、序列号等不会经常变更的属性,可在上线后发布一条保留消息告知后续的所有订阅者;
发布保留消息
在发布消息的时候将Retained 标记被设置为 true
,则该消息即是 MQTT 中的保留消息(Retained Message)。
注意事项:
1、可以通过Dashboard查看保留消息
2、MQTT 服务器会为每个主题存储最新一条保留消息
3、在保留消息发布前订阅主题,将不会收到保留消息。需要待保留消息发布后,重新订阅该主题,才会收到保留消息。
保留消息的存储方式
保留消息的存储方式:内存存储(默认存储类型)、磁盘存储
5、保留消息虽然存储在服务端中,但它并不属于会话的一部分。也就是说,即便发布这个保留消息的会话已结束,保留消息也不会被删除。
保留消息的删除方式
1、客户端往某个主题发送一个 Payload 为空的保留消息,服务端就会删除这个主题下的保留消息;
2、在 MQTT 服务器上删除,比如 EMQX MQTT 服务器提供了在 Dashboard 上删除保留消息的功能;
3、MQTT 5.0 新增了消息过期间隔属性,发布时可使用该属性设置消息的过期时间,将会在过期时间后自动被删除。
【一】.钩子文件的设置和创建(1).打开hooks目录,可以看到有一个post-commit.tmpl文件,这是一个模板文件。复制一份,重命名为post-commit,将其用户组设为www,并设置为可执行。chown www:www post-commitchmod +x post-commit(2...
在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...
git pull https://git.oschina.net/392223903/learn.git master 换为您的git地址...
1.关机Process.Start("shutdown", "-s -t 0"); 2. 注销 Proc...
方案1.IE浏览器"无法显示此页"的解决办法(1).按下Win+R键打开运行,输入netsh winsock reset,回车;(2).重启即可. 方案2.IE浏览器"无法显示此页"的解决办法 (1).设置-连接-局域网设置-自动检测设置开...
首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...