物联网为什么用MQTT不用 HTTP 或 UDP?

ops/2025/3/29 16:45:08/
http://www.w3.org/2000/svg" style="display: none;">

https://i-blog.csdnimg.cn/img_convert/8139b31b115f167448c8bb767297e75f.webp?x-oss-process=image/format,png" alt="" />
先来两个代码对比,上传温度数据给服务器。

MQTT代码示例

// MQTT 客户端连接到 MQTT 服务器    
mqttClient.connect("mqtt://broker.server.com:8883", clientId)    // 订阅特定主题    
mqttClient.subscribe("sensor/data", qos=1)    // 发布消息到主题    
mqttClient.publish("sensor/data", "temperature=20.5C", qos=1)    // 接收并处理消息    
onMessageReceived(message) {    if (message.topic == "sensor/data") {    processSensorData(message.payload)    }    
}  

HTTP 代码示例

// HTTP 客户端发送 GET 请求    
response = httpClient.get("http://api.server.com/sensor/data")    // 处理响应数据    
if (response.statusCode == 200) {    sensorData = parseSensorDataFromResponse(response.body)    processSensorData(sensorData)    
}    // 发送 POST 请求以更新传感器数据(通常不用于实时数据传输)    
requestBody = "temperature=25.5C"    
response = httpClient.post("http://api.example.com/update/sensor/data", requestBody) 

使用 MQTT :每个传感器都作为MQTT客户端连接到MQTT服务器(broker)。温度传感器定期发布包含温度数据的消息到“sensor/temperature”主题。设备通过订阅了该主题,并在接收到新的温度数据时可根据预先设计好的逻辑自动操作。这种方式下,设备动作和传感器之间的通信是实时的,且即使在网络不稳定的情况下也能保持较高的可靠性。

使用 HTTP :每个传感器都需要定期向中央服务器发送HTTP请求以获取或更新数据。例如,温度传感器需要发送HTTP POST请求来上传温度数据,而其他设备则需要发送HTTP GET请求来获取最新的温度数据以执行关联动作。这种方式下,每个请求都需要等待服务器的响应(服务器要多次处理并发,如果数量多,吃带宽),且在网络不稳定或延迟较高时可能会导致问题。此外,由于HTTP是无状态的,设备可能需要在每次需要调整动作时都重新获取温度数据。

所以MQTT在物联网应用中的使用比HTTP更加合适,因为MQTT拥有更好的带宽利用率、更低的延迟、更高的可靠性、更好的安全性、更好的扩展性,以及更适用于资源受限的设备。这些优势使得MQTT成为物联网应用中的首选协议。


http://www.ppmy.cn/ops/169933.html

相关文章

万字C++STL——vector模拟实现

模拟实现总览 namespace wlw {//命名空间为了让其隔离//模拟实现vectortemplate<class T>class vector{public:typedef T* iterator;typedef const T* const_iterator;//默认成员函数vector(); //构造函数vector(size_t n, c…

【从零实现Json-Rpc框架】- 第三方库介绍 - Muduo篇

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

贪心算法——思路与例题

贪心算法&#xff1a;当我们分析一个问题时&#xff0c;我们往往先以最优的方式来解决问题&#xff0c;所以顾名思义为贪心。 例题1 题目分析&#xff1a;这题利用贪心算法来分析&#xff0c;最优解&#xff08;可容纳人数最多时&#xff09;一定是先考虑六人桌&#xff0c;然…

WELL健康建筑认证是什么?

**WELL健康建筑认证&#xff1a;全方位呵护居住者福祉的权威标准** WELL健康建筑认证&#xff0c;这一源自美国的全球性健康建筑标准&#xff0c;宛如建筑界的璀璨明珠&#xff0c;以其独特的光芒照亮了健康建筑的发展之路。它不仅是全球首部专门针对室内环境提升人体健康与福…

【大模型基础_毛玉仁】4.2 参数附加方法

目录 4.2 参数附加方法4.2.1 加在输入4.2.2 加在模型1&#xff09;Prefix-tuning&#xff08;前缀微调&#xff09;2&#xff09;Adapter-tuning&#xff08;适配器微调&#xff09;3&#xff09;AdapterFusion&#xff08;适配器融合&#xff09; 4.2.3 加在输出 4.2 参数附加…

mapbox进阶,添加鹰眼图控件

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️mapboxgl-minimap 鹰眼控件二、🍀添加…

PortAudio--PCM播放与采集

PortAudio 是一款跨平台音频 I/O 库,支持 Windows、Linux、macOS 等系统,其核心设计基于异步回调机制,适用于实时音频采集与播放场景。主要负责‌音频流的采集与播放‌,其原生接口仅支持‌PCM格式‌的原始音频数据处理,不包含内置的音频编码模块‌。 官网:https://www.p…

当了5年牛马,我开始划水了。。。

我现在的这份工作&#xff0c;比上一份要好很多&#xff0c;首先薪资直接涨了一倍&#xff0c;7k到16.5k&#xff0c;13薪&#xff0c;朝九晚六&#xff0c;从不加班&#xff0c;项目也简单&#xff0c;包括我在内测试组一共有6个同事&#xff0c;但是每个人分到的任务真的很少…