转载于https://www.eechina.com/thread-592690-1-1.html
在物联网的世界里面,典型的网络架构如下,首先是终端的设备或者传感器采集到信号或者信息,对于不能上internet或者intranet网的设备,传感器先把探测到的信息发送到物联网网关,然后网关把信息发送给服务器;有的设备本身就自带了接入网络的功能,比如手机,那就可以直接连接入服务器,具体的网络架构如下图。
有的时候,为了给服务器减压,我们可以选择一些轻量级的通信协议,比如MQTT,而不是HTTP,那为什么选择MQTT,而不是HTTP呢?因为HTTP 协议的首部(header)比较大,而且每次发送数据都要发送一个数据包来连接/断开TCP,因此发送的数据越多,数据总通信量也就越大;
而MQTT 的首部比较小,还能在维持TCP 连接的同时,进行下一次数据的收发,所以比起HTTP,它更能抑制数据总通信量。
除此之外,在使用MQTT 时还要注意一点,即应该一边维持MQTT的TCP 连接,一边进行数据的发送和接收。因为MQTT 是通过维持TCP 连接来削减通信量的,所以要是每次进行数据通信都断开TCP 连接,MQTT 就会跟HTTP 一样在每次发送数据时都执行连接和断开处理,结果反而会增加通信量。
网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?