物联网开源平台开发系列008 – 浅谈物联网传输协议

物联网(IoT)设备和服务器之间的通信协议,粗略的大致有MQTTCoAP、HTTP、UDP几种。细分的,还有MQTT over SSL , CoAP over DTSL ,HTTP over SSL ,MQTT over WebSocket 等。以上这些Thingsboard除了UDP协议外,均支持。本篇介绍以上协议以及在Thingsboard 中的支持以及默认端口。

MQTT

MQTT 是一种轻量级的发布-订阅消息传递协议,构建于TCP/IP协议之上,最适合各种 IoT 设备。 您可以在此处找到有关 MQTT 的更多信息。

MQTT over SSL

mqtts 是基于 TLS/SSL 的安全连接,ThingsBoard 提供了通过 SSL 运行 MQTT 服务器的功能。支持单向和双向 SSL。

CoAP

CoAP 是一种适用于受限设备的轻量级 IoT 协议。您可以在此处找到有关 CoAP 的更多信息。 CoAP 协议基于 UDP,但与 HTTP 类似,它使用请求-响应模型。 CoAP Observe Option 允许订阅资源并接收有关资源更改的通知。

CoAP over DTSL

CoAP over DTLS‌是一种在CoAP协议上使用DTLSDatagram TLS)进行加密的方法。CoAP是一种专门为物联网(IoT)设计的轻量级应用层协议,主要用于资源受限的设备之间的通信。DTLS是TLS协议的变体,适用于基于UDP的通信,能够在不可靠的网络环境中提供安全传输。

CoAP over DTLS通过在CoAP消息上应用DTLS加密来确保数据传输的安全性。DTLS在TLS的基础上进行了优化,以适应UDP的不可靠传输特性。具体来说,DTLS为CoAP消息提供了数据加密和身份验证功能,确保数据在传输过程中的完整性和保密性。

HTTP

Thingsboard 有设备端HTTP API , IoT设备 可以通过API 用 Http 协议 或 https协议 向服务器发送数据。

MQTT over WebSocket

前端功能的演进催生了高级浏览器功能,显著增强了网络上的用户交互和数据通信。这一进步的核心是 WebSocket,这是一种强大的通信协议,它重新定义了 Web 应用程序中的实时双向通信。

同时,MQTT 以其轻量级结构和可靠性而闻名,尤其是在受限环境和不稳定的网络中。该协议已成为物联网生态系统中消息传输的基石。它适用于低开销消息传递,与高效网络通信的需求完美契合。对于移动设备和需要立即交换数据的场景(例如传感器数据监控或接收关键通知)尤其如此。

MQTT 与 WebSocket 的集成不仅仅是一种技术组合,更是一种变革性的网络通信方法。它使 MQTT 消息能够直接通过浏览器发送和接收,充分利用 MQTT 和 WebSocket 的独特优势。这种协同作用开辟了多种可能性,从显示实时设备信息和接收实时警报到移动 Web 应用程序中的高效通信。

WebSocket 是一种通信协议,可通过单个长寿命 TCP 连接实现 Web 客户端与服务器之间的实时双向通信。它与传统的 HTTP 请求/响应模型有很大不同,允许以较低的延迟进行持续的数据交换。它通过 HTTP 升级握手发起,支持未加密 (ws://) 和加密 (wss://) 连接。WebSocket 具有高效且持久的通信通道,对于需要实时内容更新的 Web 应用程序来说必不可少。

通过 WebSocket 使用 MQTT 的好处

MQTT 与 WebSocket 的集成为基于 Web 的 IoT 应用提供了显著的优势。通过利用 MQTT over WebSocket,传统非 Web MQTT 协议可以有效地扩展到 Web 应用领域。这种适应是必要的,因为 Web 浏览器本身并不支持 MQTT,因此需要使用 WebSocket 作为桥梁来促进通信。

让我们概述一下这一组合的几个关键方面:

  • 高效资源利用:MQTT 是一种轻量级协议,非常适合带宽或设备功能有限的场景。通过 WebSocket 使用时,它可确保在 Web 应用程序环境中高效利用网络和设备资源。
  • 实时通信:WebSocket 提供持续连接,实现低延迟的实时数据交换。
  • 双向通信:WebSocket 支持全双工通信,允许同时在两个方向上传输数据。此功能与 MQTT 的发布/订阅模型相结合,可实现动态和交互式通信场景。
  • 与 Web 生态系统的兼容性:通过在 WebSocket 上使用 MQTT,该协议变得与 Web 浏览器安全模型兼容,从而无需额外的插件或特殊安排即可将其集成到 Web 应用程序中。
  • 支持 MQTT 功能:集成不会影响 MQTT 的本机功能,如保留消息、遗嘱和清理会话,从而确保强大且功能丰富的实现。

Thingsboard 的TBMQ 使用两个监听器 WS(WebSocket)和 WSS(WebSocket Secure)来促进通过 WebSocket 进行的通信。您可以参考此处

下面来说一下各协议的默认端口

MQTT 端口: 1883

MQTTs 端口:8883

CoAP 端口: 5683

CoAPs端口:5684

WebSocket 端口

ws: 8084 , url: ws://localhost:8084/mqtt

wss:8085,url: wss://exsample.com:8085/mqtt

系列文章

物联网开源平台开发系列001 – 开源平台Thingsboard 介绍

物联网开源平台开发系列002 – Thingsboard 用户系统分析

物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆

物联网开源平台开发系列004 – Thingsboard的实体、资产、设备一般说明及数据存储 – 陈皮王五de杂记

物联网开源平台开发系列005 – Thingsboard的API简述 – 陈皮王五de杂记

物联网开源平台开发系列006 – 在Thingsboard内创建一个设备 – 陈皮王五de杂记

物联网开源平台开发系列007 – Thingsboard的批量导入设备 – 陈皮王五de杂记

物联网开源平台开发系列008 – 浅谈物联网传输协议 – 陈皮王五de杂记

物联网开源平台开发系列009 – Thingsboard服务器对IoT设备下发指令 – 陈皮王五de杂记

物联网开源平台开发系列010 – Thingsboard规则引擎简介 – 陈皮王五de杂记

物联网开源平台开发系列011 – Thingsboard规则节点Originator Telemetry – 陈皮王五de杂记

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置 – 陈皮王五de杂记

物联网开源平台开发系列013 – Thingsboard 遥测产生告警Alarm – 陈皮王五de杂记

物联网开源平台开发系列014 – Thingsboard遥测时序数据存储结构及分区策略 – 陈皮王五de杂记

物联网开源平台开发系列015 – Thingsboard postgresql数据库基本配置 – 陈皮王五de杂记

物联网开源平台开发系列016 – 再谈Thingsboard的设备注册 – 陈皮王五de杂记

物联网开源平台开发系列017 – Thingsboard的设备联动场景 – 陈皮王五de杂记

物联网开源平台开发系列018 – Thingsboard获取和处理天气信息 – 陈皮王五de杂记

物联网开源平台开发系列019 – Thingsboard设备数据传播给资产 – 陈皮王五de杂记

物联网开源平台开发系列020 – Thingsboard的实体视图Entity View – 陈皮王五de杂记

物联网开源平台开发系列021 – Thingsboard的网关gateway – 陈皮王五de杂记

物联网开源平台开发系列022 – 通过Thingsboard网关gateway动态创建设备 – 陈皮王五de杂记

物联网开源平台开发系列023 – Thingsboard设备列表仪表盘 – 陈皮王五de杂记

物联网开源平台开发系列024 – Thingsboard接入摄像头方案 – 陈皮王五de杂记

物联网开源平台开发系列025 – Thingsboard规则链节点的JS代码调试 – 陈皮王五de杂记

原创文章,作者:Gary,如若转载,请注明出处:https://www.cpw5.top/804.html

淘宝小店:陈皮王五工作室

(0)
GaryGary
上一篇 2025-02-06 下午2:38
下一篇 2025-02-11 下午3:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(18条)