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

MQTT、HTTP短轮询、HTTP长轮询、WebSocket

一、协议“明星定位”仿写

  1. MQTT:物联网领域的**“明星协议”**,专为低带宽、高延迟网络环境下的设备通信而生。
  2. HTTP短轮询:数据拉取界的**“劳模”**,用简单粗暴的频繁请求换取数据更新。
  3. HTTP长轮询:短轮询的**“智能升级版”**,通过挂起连接减少无意义轮询。
  4. WebSocket:实时通信的**“高速公路”**,全双工通道让数据自由流动。

二、四种方案对比表

维度MQTTHTTP短轮询HTTP长轮询WebSocket
协议定位物联网专用应用层协议通用请求-响应协议(高频拉取)改进版请求-响应(挂起连接)全双工通信协议
实时性⭐⭐⭐⭐⭐(毫秒级)⭐(秒级延迟)⭐⭐(亚秒级延迟)⭐⭐⭐⭐⭐(实时)
网络开销⭐⭐⭐⭐(二进制报文,低开销)⭐(Header 重复,高开销)⭐⭐(Header 重复,中开销)⭐⭐⭐(文本/二进制,中等开销)
开发复杂度⭐⭐⭐(需库+协议细节)⭐⭐⭐⭐⭐(极简)⭐⭐⭐⭐(需处理超时重试)⭐⭐⭐⭐(需管理连接状态)
跨平台兼容性⭐⭐⭐(需设备支持库)⭐⭐⭐⭐⭐(全平台支持)⭐⭐⭐⭐⭐(全平台支持)⭐⭐⭐⭐(现代环境均支持)
微信小程序适配⭐⭐(需集成第三方库)⭐⭐⭐⭐⭐(原生支持)⭐⭐⭐⭐⭐(原生支持)⭐⭐⭐⭐⭐(原生支持)

三、关于 EMQX 等开源平台的作用

1. EMQX 如何简化 MQTT 开发?
  • 快速搭建服务:EMQX 提供开箱即用的 MQTT Broker,支持一键部署(Docker、云服务)。
  • 可视化监控:内置 Dashboard 可实时查看设备连接、消息流量。
  • 规则引擎:通过 SQL 语句实现消息转发、数据存储(如转发到 MySQL)。
  • 免费额度:开源版 EMQX 支持 1000 并发连接,足够毕设使用。
2. 开发复杂度变化
  • 服务端复杂度:⭐⭐⭐ → ⭐(EMQX 解决 Broker 搭建)。
  • 客户端复杂度:⭐⭐⭐(仍需处理 MQTT 协议细节,如 QoS、遗嘱消息)。
  • 微信小程序适配:⭐⭐(仍需集成 MQTT.js 库,处理证书和连接状态)。

结论:EMQX 降低了服务端部署难度,但客户端开发复杂度依然存在。


四、其他简单易用的云平台推荐

1. 支持 WebSocket 的云平台
平台名称特点毕设友好度
阿里云 IoT提供 WebSocket 接入,免费额度充足,文档详细。⭐⭐⭐⭐⭐
腾讯云 IoT Hub支持 MQTT/WebSocket,提供设备影子功能,适合状态同步。⭐⭐⭐⭐
ThingsBoard开源 IoT 平台,支持 WebSocket 和 MQTT,自带可视化仪表盘。⭐⭐⭐⭐⭐
Astarte开源 IoT 平台,支持 WebSocket,数据管道灵活。⭐⭐⭐

相关文章:

MQTT、HTTP短轮询、HTTP长轮询、WebSocket

一、协议“明星定位”仿写 MQTT:物联网领域的**“明星协议”**,专为低带宽、高延迟网络环境下的设备通信而生。HTTP短轮询:数据拉取界的**“劳模”**,用简单粗暴的频繁请求换取数据更新。HTTP长轮询:短轮询的**“智能…...

Apache Commons CLI 入门教程:轻松解析命令行参数

文章目录 Apache Commons CLI 入门教程:轻松解析命令行参数一、什么是 Commons CLI?二、为什么选择 Commons CLI?三、快速开始1. 添加依赖2. 基础示例3. 运行示例1. 在Idea中运行2. 命令行中运行3. 使用 Maven/Gradle 运行(推荐&a…...

Kubernetes Operator 是什么,以及它们的用途

最近一个朋友问我关于EKS的升级问题: 场景: 如果我有 100 个 EKS 集群需要升级,那么所有集群都安装了安全插件。由于我不想在升级后手动在每个EKS中重复安装此插件,如何实现EKS升级后自动安装这个安全插件? 答案有多…...

SAP ABAP语言中的比较运算符

一、基本比较运算符 ​运算符描述​​关键字形式​​符号形式​​示例​等于EQIF a EQ b 或 IF a b不等于NE<>IF a NE b 或 IF a <> b大于GT>IF a GT b 或 IF a > b小于LT<IF a LT b 或 IF a < b大于等于GE❌ 不支持IF a GE b小于等于LE❌ 不支持IF …...

10秒调用大模型!思源笔记+Ollama实现实时AI推理助力写作效率提升

文章目录 前言1. 下载运行Ollama框架2. Ollama下载大语言模型3. 思源笔记设置连接Ollama4. 测试笔记智能辅助写作5. 安装Cpolar工具6. 配置Ollama公网地址7. 笔记设置远程连接Ollama8. 固定Ollama公网地址 推荐 ​ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂…...

Linux网络DFS共享服务搭建

目录 一.存储类型 1.DAS优势和局限性 2.SAN的特点及组成 3.NAS优势与局限性 二.NFS服务 1.NFS工作原理 2.NFS工具 2.1 exportfs 2.2 showmount 3.实际操作 3.1.服务器操作 3.2.客户机操作 3.3.默认无法写操作 一.存储类型 存储类型分为三种 直连式存储&#xff1a…...

汇舟问卷:国外问卷调查项目

这个项目现在市面上主要有三种玩法&#xff0c;我给你整点实在的&#xff1a; 第一种&#xff1a;上网站直接做调查&#xff08;站点查&#xff09; ​和国内调查网站差不多&#xff0c;国外也有一堆调查网站。可以直接到国外问卷网站注册账号答题。 好处是题目现成的不用自…...

JSON-RPC 2.0 vs REST API 详细对比分析

现在要开始做一个新的业务模块了&#xff0c;系统思考下 新的业务模式应该是采用 JSON-RPC 2.0 还是 老套路 REST API 的接口协议 &#xff0c;系统的学习下 1. 基本概念 JSON-RPC 2.0 无状态的、轻量级的远程过程调用&#xff08;RPC&#xff09;协议使用 JSON 作为数据格式…...

Python 类方法

Python 类方法示例 类方法是绑定到类而不是实例的方法&#xff0c;它们使用 classmethod 装饰器定义&#xff0c;第一个参数通常是 cls&#xff08;表示类本身&#xff09;。下面是一个具体的例子&#xff1a; class Employee:"""员工类"""rais…...

MVC流程讲解——以文件下载为例

整体的流程是这样&#xff1a; 用户点击一个树节点 → 请求远程机器该目录下的文件信息 → 显示在树控件和列表控件中。 &#x1f9f1; MCV 模式简介&#xff08;针对这个场景&#xff09; 模块代表什么主要职责Model&#xff08;模型&#xff09;数据结构和逻辑表示你传输的…...

深度学习之线性代数基础

2.3.7 点积 ∑按位积 2.3.8 矩阵-向量积 2.3.9 矩阵-矩阵乘法 2.3.10 范数...

某公司网络OSPF单区域配置

1.配置背景&#xff1a; xx公司网络由三台路由器和一台交换机组成&#xff0c;现在想要三台路由器之间通过OSPF实现互连互通。 2.网络结构如下&#xff1a; 3.具体配置&#xff1a; 3.1路由器 RA 配置&#xff1a; 1.更改主机名称&#xff1a; Router>en Router#conf t…...

vue+flask+GNN+neo4j图书知识图谱推荐系统

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站&#xff0c;有好处&#xff01; 编号: F025 pro 架构: vueflaskneo4jmysqlpytorch 亮点&#xff1a;两种基于知识图谱的推荐算法&#xff08;GNN和基于路径推荐&#x…...

小程序页面传值的多种方式

开发小程序&#xff0c;总是避免不了页面和页面之间数据共享&#xff0c;实现方法有很多种&#xff0c;以下就讲解一下小程序页面传值&#xff0c;需要的朋友可以参考下。 1 使用wx.navigateTo()传值 这种传值方式有两种&#xff0c; url后面拼接传值&#xff1a;需要跳转的…...

基于SSM框架的校园食堂小程序设计与实现

概述 基于SSM框架开发的微信小程序民大食堂用餐综合服务平台&#xff0c;该系统集成了商家管理、餐品展示、在线点。 主要内容 一、管理员模块功能实现 ​​用户信息管理​​ 管理员可添加、查看和删除用户信息&#xff0c;确保平台用户数据安全可靠。 ​​商家信息管理​​…...

FOC算法对MCU计算资源的需求?

评估FOC(磁场定向控制)算法对MCU计算资源的需求,需从算法复杂度、硬件特性、实时性要求等多维度分析。以下是具体步骤和关键要点: 一、拆解FOC算法的核心模块及计算复杂度 FOC算法主要由以下子模块组成,需分别评估各模块的计算量: 1. 传感器采样与预处理 ADC采样:电流…...

在 Excel 中使用通义灵码辅助开发 VBA 程序

VBA 简介 VBA 是一种用于微软办公套件&#xff08;如 Word、Excel、PowerPoint 等&#xff09;的编程语言&#xff0c;它本质上是一种内嵌的脚本&#xff0c;或者可以认为是一段命令&#xff0c;其标准叫法被称为宏。 VBA 只能依赖于对应的软件进行开发&#xff0c;例如本文就…...

嵌入式基础(三)基础外设

嵌入式基础&#xff08;三&#xff09;基础外设 1.什么是UART&#xff1f;与USART有什么区别⭐⭐⭐ (1)什么是UART 通用异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter)&#xff0c;通常称作UART。是一种异步全双工串行通信协议&#xff0c;它将要…...

【微服务管理】深入理解 Gateway 网关:原理与实现

在当今微服务架构盛行的时代&#xff0c;Gateway 网关扮演着举足轻重的角色。它作为微服务架构的重要组成部分&#xff0c;为系统提供了统一的入口&#xff0c;承担着诸如路由转发、负载均衡、安全防护、流量控制等关键功能。本文将深入探讨 Gateway 网关的底层原理&#xff0c…...

AI与无人驾驶汽车:如何通过机器学习提升自动驾驶系统的安全性?

引言 想象一下&#xff0c;在高速公路上&#xff0c;一辆无人驾驶汽车正平稳行驶。突然&#xff0c;前方的车辆紧急刹车&#xff0c;而旁边车道有一辆摩托车正快速接近。在这千钧一发的瞬间&#xff0c;自动驾驶系统迅速分析路况&#xff0c;判断最安全的避险方案&#xff0c;精…...

【网络安全】通过 JS 寻找接口实现权限突破

未经许可,不得转载。 本文所述所有风险点均已修复。 文章目录 引言正文引言 以下些漏洞已被起亚方面修复;起亚方面确认,这些漏洞从未被恶意利用过。 2024年6月11日,我们发现起亚汽车存在一系列严重安全漏洞,攻击者仅凭车牌号即可远程控制车辆的核心功能。该攻击不需要接触…...

【HarmonyOS NEXT】多目标产物构建实践

目录 什么是多产物构建 如何定义多个构建产物 如何在项目中使用 参考文章 什么是多产物构建 在鸿蒙应用开发中&#xff0c;一个应用可定义多个 product&#xff0c;每一个 product 对应一个定制的 APP 包&#xff0c;每个 product 中支持对 bundleName、bundleType、输出产…...

Openlayers:实现聚合

一、什么是聚合 聚合是一种将一定范围内的多个图形合并为一个图形的一种技术方案。通常用来解决图形过于集中或者图形数量过多的问题。 在Openlayers中主要通过Cluster数据源来实现聚合的效果。与其它的数据源不同&#xff0c;Cluster数据源在实例化时需要接收一个矢量数据源…...

相机内外参

文章目录 相机内参相机外参 相机的内外参是相机标定过程中确定的重要参数&#xff0c;用于建立图像像素坐标与实际世界坐标之间的关系。 相机内参 定义&#xff1a;相机内参是描述相机内部光学和几何特性的参数&#xff0c;主要包括焦距、主点坐标、像素尺度因子以及畸变系数等…...

轨道力学课程习题集

轨道力学课程习题集 第一讲&#xff1a;轨道力学概述 思考题 推导开普勒第三定律与牛顿万有引力定律的关系。 计算地球表面的第一宇宙速度和第二宇宙速度。 设计一个太阳同步轨道&#xff0c;高度为800公里&#xff0c;要求当地时间为上午10:30。 分析地球静止轨道的稳定性…...

【Web三十一】K8S的常用命令

01 基础资源操作​​ 查看资源​​ # 查看 kube-system 命名空间下的 Pod 列表 kubectl get pods -n kube-system# 查看节点详细信息&#xff08;IP、状态等&#xff09; kubectl get nodes -o wide# 按标签筛选 Pod&#xff08;例如筛选标签 appnginx 的 Pod&#xff09; ku…...

GDPR/CCPA

定义 GDPR&#xff08;通用数据保护条例&#xff09; 适用范围&#xff1a;适用于欧盟境内所有成员国&#xff0c;以及处理欧盟居民个人数据的全球企业。 数据主体权利&#xff1a;用户有权知道、访问、更正、删除&#xff08;被遗忘权&#xff09;自己的数据&#xff0c;还有…...

Lua中的元表

2025年4月14日&#xff0c;周一上午 Lua中的元表&#xff08;metatable&#xff09;是一种特殊的表&#xff0c;用于定义或修改其他表&#xff08;或用户数据类型&#xff09;的行为。通过元表中的元方法&#xff08;meta-methods&#xff09;&#xff0c;开发者可以自定义表在…...

Sql Server(自用查看版)

目录 1、基本数据库相关概念 1.1数据Data 1.2数据库DataBase,DB 1.3数据库管理系统DataBase Management System,DBMS 1.4数据库系统 DataBase System DBS 1.5数据库系列架构 2、SQL sever 基本概念 单表查询 查询所有列的信息&#xff0c;用* 查询部分列&#xff1a…...

【JavaScript】二十、电梯导航栏的实现

文章目录 1、案例&#xff1a;电梯导航1.1 需求分析与实现1.2 关键思路梳理 2、属性选择器补充 1、案例&#xff1a;电梯导航 1.1 需求分析与实现 需求&#xff1a;点击不同的模块&#xff0c;页面可以自动跳转不同的位置 模块分析: 页面滚动到对应位置&#xff0c;导航显示…...

【Python】OpenCV图像处理

文章目录 OpenCV安装查看版本getVersionString查看图片像素shape打开图片imshowRGB灰度图图像裁剪image绘制处理噪点图像特征提取匹配图像梯度&#xff08;canny边缘检测&#xff09;阈值图像的形态学&#xff08;腐蚀、膨胀&#xff09;打开电脑的摄像头 OpenCV OpenCV&#…...

HTTP协议 --- 超文本传输协议 和 TCP --- 传输控制协议

是基于 TCP 协议的 80 端口的一种 C/S 架构协议。 特点&#xff1a;无状态 --- 数据传输完成后&#xff0c;会断开 TCP 连接&#xff0c;哪怕浏览器还正常运行。 请求报文 --- 方法 响应报文 --- 状态码 是一种面向连接的可靠传输协议 。 面向连接 --- 在传输数据之前&am…...

微信小程序实现table样式,自带合并行合并列

微信小程序在代码编写过程好像不支持原生table的使用&#xff0c;在开发过程中偶尔又得需要拿table来展示。 1.table效果展示 1.wxml <view class"table-container"><view class"table"><view class"table-row"><view cla…...

【NLP】25.python实现点积注意力,加性注意力,Decoder(解码器)与 Attention

1. 点积注意力&#xff08;Dot-Product Attention&#xff09; 点积注意力是最简单的注意力机制之一&#xff0c;其基本思想是通过计算查询&#xff08;query&#xff09;和键&#xff08;key&#xff09;之间的点积来得到相似度&#xff0c;进而为每个值&#xff08;value&am…...

基础贪心算法集合2(10题)

目录 1.单调递增的数字 2.坏了的计算器 3.合并区间 4.无重叠区间 5. 用最少数量的箭引爆气球 6.整数替换 解法1&#xff1a;模拟记忆化搜索 解法2位运算贪心 7.俄罗斯套娃信封问题 补充.堆箱子 8.可被3整除的最大和 9.距离相等的条形码 10.重构字符串 1.单调递增的数字…...

Oracle OCP知识点详解3:使用 vim 编辑文件

一、Vim 核心模式解析 1.1 模式切换图谱 graph LR A[普通模式] -->|i/I/a/A| B[插入模式] B -->|Esc| A A -->|v/V/Ctrlv| C[可视模式] A -->|: / ?| D[命令模式] C -->|Esc| A D -->|Enter| A 1.2 Oracle 场景高频模式组合 模式组合应用场景操作效率提…...

项目风险的早期识别与应对清单

项目风险的早期识别与应对策略的核心在于&#xff1a; 建立系统化的风险识别流程、评估风险的影响程度、制定详细的应对措施、持续监控与调整风险管理计划。 其中&#xff0c;建立系统化的风险识别流程是风险管理的第一步&#xff0c;也是最为关键的一环。通过构建一套有效的识…...

springboot数据动态脱敏

反射Jackson数据动态脱敏 我有两个字段&#xff0c;name和type&#xff0c;我想要在type为1对数据脱敏&#xff0c;而其他情况不脱敏&#xff1a; CustomSerializer注解 Target(ElementType.FIELD) //表示这个注解只能用在字段上 Retention(RetentionPolicy.RUNTIME) //注解…...

算法:定义一个数组的的陡峭值为:相邻两个元素之差的绝对值之和。

定义一个数组的的陡峭值为:相邻两个元素之差的绝对值之和。现在小红拿到了一个数组&#xff0c;她有多次询问&#xff0c;每次查询一段连续子数组的陡峭值。你能帮帮她吗? 连续子数组为从原数组中&#xff0c;连续的选择一段元素(可以全选、可以不选)得到的新数组。 输入描述 …...

【AI提示词】网络安全专家

提示说明 网络安全专家在数字时代扮演着至关重要的角色&#xff0c;他们通过专业的知识和技能保护网络系统免受攻击和破坏&#xff0c;确保数据的安全和隐私。 提示词 # 角色 网络安全专家## 性格类型指标 INTP&#xff08;内向直觉思维感知型&#xff09;## 背景 网络安全专…...

AI大模型原理可视化工具:深入浅出理解大语言模型的工作原理

AI大模型原理可视化工具&#xff1a;深入浅出理解大语言模型的工作原理 在人工智能快速发展的今天&#xff0c;大语言模型&#xff08;如GPT、BERT等&#xff09;已经成为改变世界的重要技术。但对于很多人来说&#xff0c;理解这些模型的工作原理仍然是一个挑战。为了帮助更多…...

解决无人机无人化自主巡检面对的新挑战-机载通信、控制及算力的AIBOX

解决无人机无人化自主巡检面对的新挑战-机载通信、控制及算力的AIBOX 之前的微文&#xff1a;基于无人机的无人化自主巡检-大疆机场3M4TD&#xff0c;介绍了机场3的无人机无人机巡检的特点以及局限性。此处从通信增强、飞行及位置服务增强、智慧飞行以及无人机编队几个方面阐述…...

供应商涨价,项目如何控制采购成本

优化供应商结构、严格控制交付流程、强化谈判策略、设置弹性预算、建立长远合作机制 来有效控制采购成本。其中&#xff0c;强化谈判策略 是最核心的一步&#xff1a;不仅要明确价格承受范围&#xff0c;还需根据对方供应链特点和市场行情&#xff0c;准备多套备选方案&#xf…...

newbee商城购物车模块mapper.xml

1.浏览代码 1&#xff09;表 自定义 DROP TABLE IF EXISTS tb_newbee_mall_shopping_cart_item; CREATE TABLE tb_newbee_mall_shopping_cart_item (cart_item_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 购物项主键id,user_id bigint(20) NOT NULL COMMENT 用户主键id…...

高级java每日一道面试题-2025年4月07日-微服务篇[Nacos篇]-如何监控Nacos的运行状态?

如果有遗漏,评论区告诉我进行补充 面试官: 如何监控Nacos的运行状态&#xff1f; 我回答: 监控Nacos运行状态的综合方案 在Java高级面试中&#xff0c;监控Nacos运行状态是一个重要的技术点&#xff0c;它直接关系到微服务架构的稳定性和性能。以下是一个综合的监控方案&am…...

开源技术如何助力中小企业实现财务管理自主化?

中小企业的数字化困境与开源机遇 国际数据公司&#xff08;IDC&#xff09;研究显示&#xff0c;全球67%的中小企业因高昂的软件成本和僵化的功能设计&#xff0c;未能有效推进数字化转型。传统商业软件常面临三大矛盾&#xff1a; 功能冗余与核心需求缺失&#xff1a;标准化系…...

3D-DIC技术:煤层开采瓦斯防治的精准监测解决方案

3D-DIC非接触式三维全场应变测量系统是基于数字图像相关算法&#xff08;DIC&#xff09;的一种光学测定应变、变形的方法。由CCD相机、光源、支架、数据采集器和DIC软件组成。 一、DIC技术瓦斯防治应用 新拓三维XTDIC三维全场应变测量系统&#xff0c;通过两个工业相机采集图…...

CS5346 - Annotation in Visualization (可视化中的注释)

文章目录 Annotation 的重要性Levels of Annotation &#xff08;注释的层级&#xff09;Headings and IntroductionHeadings&#xff08;标题&#xff09;陈述型&#xff08;Statement&#xff09;&#xff1a;突出结论或有趣发现疑问型&#xff08;Question&#xff09;&…...

VRoid-Blender-Unity个人工作流笔记

流程 VRoid 选配模型>减面、减材质>导出vrm Blender&#xff08;先有CATS、vrm插件&#xff09; 导入vrm>Fix model>修骨骼>导出fbx Unity 找回贴图、改着色器、调着色器参数…… VRoid 减面 以模型不出现明显棱角为准。脸好像减面100也问题不大。 下…...

【ROS2】行为树 BehaviorTree(三):异步操作

【ROS】郭老二博文之:ROS目录 1、简述 前面的例子中,使用过同步节点 SyncActionNode,当调用到该节点时,成功返回SUCCESS,失败返回FAILURE,并且线程会等待该节点执行完毕。 如果需要异步操作,比如节点执行需要很长时间,不能立刻返回结果,可以先去执行其它任务,等该…...