共 1 篇文章

标签:MQTT服务器关闭:你的设备是否受影响? (mqtt服务器close)

MQTT服务器关闭:你的设备是否受影响? (mqtt服务器close)

MQTT(Message Queuing Telemetry Transport)是一种轻量级的物联网通信协议,广泛应用于物联网设备通信领域。然而,最近国内一家MQTT服务器提供商宣布关闭其服务,并可能彻底下线,在此背景下我们需要探讨MQTT服务器关闭对设备的影响。 影响1:通信中断 MQTT服务器是物联网设备之间通信的“中介”,一旦服务器关闭,设备之间的通信将被中断,导致设备无法正常工作。此外,有些设备上可能存储了MQTT服务器的地址信息,一旦服务器关闭,这些设备将无法重新连接其他MQTT服务器。 影响2:数据存储丢失 MQTT服务器只是传输数据的“传送带”,但实际上不少企业和开发者在MQTT服务器上选择存储相关的状态数据、传感器数据等,因此在服务器关闭后,这些数据将会丢失。对于对设备状态和存储数据有重要依赖的企业和开发者来说,这个问题将会比通信中断更加致命。 影响3:升级问题 许多设备的固件版本都默认设置了一个MQTT服务器地址,在升级固件时,设备可能会重新连接到原来的MQTT服务器上。如果该MQTT服务器已经关闭,则设备将无法获取新版本的固件,并且可能会一直陷入“失败循环”,这对设备的升级工作带来了很大威胁。 解决方案 针对MQTT服务器关闭后的这些问题,我们可以从以下角度出发解决: 1.选择可靠的MQTT服务器提供商 选择具有稳定性、服务能力和可扩展性的MQTT服务器提供商。特别是对于在MQTT服务器上存储了重要数据的企业和开发者来说,更应该谨慎选择MQTT服务器提供商。 2.本地备份 对于需要存储数据的设备和个人来说,应该备份数据并存储在本地。在MQTT服务器关闭后,备份的数据可以恢复,并且不会因为服务器不可用而产生损失。 3.升级固件 在升级固件时,我们应该使用默认的地址信息,而不是强制指定原来的MQTT服务器地址。这样可以避免因为MQTT服务器关闭而影响固件的升级。 结论 MQTT服务器的关闭对于物联网设备的影响是显而易见的。为了保证设备的正常工作,我们需要采取措施避免这些影响。企业和开发者应该选择可靠的MQTT服务器提供商,备份数据并存储在本地,以及在固件升级时使用默认的地址信息。只有这样,我们才能保证设备的正常运行和数据的安全性。 相关问题拓展阅读: Android 中使用MQTT(之一篇) Android 中使用MQTT(之一篇) MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议。它是一种发布/订阅,极其简单和轻量级的消息传递协议,专为受限设备和低带宽,高延迟或不可靠的网络而设计。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境。相对于XMPP,MQTT更加轻量级,并且占用的宽带低。 MQTT协议有以下特点: 那么问题来了?重连连接成功后重复接收到最后一条消息 MQTT推送消息订阅端重复接收问题。 (背景)订阅端断开的时候,发布端多次推送消息。 (现象)订阅端启动时,接收到最后一条推送消歼启息有两次;即使Qos设置为2;依然是两次。 经排查是因为 MqttMessage的Retained设置为了true; 该值很多文章上只说了是 消息保留机制,若设置为true,厅改档mqtt服务器会保留每次发布的消息;较少提到 若订阅某主题的客户端重启,则会把此主题之前发布的消息重新推送到客户端。该值默认为false;去掉修改该值即可 那么问题来了?重连连接后手动那么多遗漏的消息,怎么选择只接收最新的一条消息呢? MQTT推送消息订阅端重复接收问题。 (背景)订阅端断开的时候,扮乱发布端多次推送消息。 (现象)订阅端启动时,接收到msg1,msg2,msg3 (这三个消息都是同一个类型消息,只需要处理最新的msg3就好,不然界面会刷新三次)这个谁有什么好办法没呢? GitHub地址: mqtt的官方文档: Github上有中文翻译: 在module的build.gradle文件中添加依赖 在 AndroidManifest.xml 添加限权 在 AndroidManifest.xml 注册Service (MyMqttService为自己写的服务,下文会讲到) mqtt服务器close的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mqtt服务器close,MQTT服务器关闭:你的设备是否受影响?,Android 中使用MQTT(之一篇)的信息别忘了在本站进行查找喔。

技术分享