Java 物联网协议MQTT和 CoAP

这篇具有很好参考价值的文章主要介绍了Java 物联网协议MQTT和 CoAP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

概述

java IOT 协议是大家非常熟悉的一种的协议。

需求:

1.概述
2. 协议分类

设计思路

实现思路分析

1.概述

物联网核心组成就是物联设备、网关和云端。物联设备分为两类,一类是其自身天然支持TCP/IP而能直接接入物联网,如wifi、GPRS/3G/4G(当然,还有即将到来的5G)等设备;另一类是其未能支持IP协议而需要网关(协议转换)来接入物联网,如Zigbee、蓝牙等设备。对于蓝牙设备而言,手机其实是一个网关。

2.MQTT

MQ 遥测传输(MQ Telemetry Transport,简称MQTT)是一个面向 IoT 应用程序的轻量级连接协议。它基于 TCP/IP 网络连接使用发布/订阅方法来传输数据。设计思想是开放、简单、轻量、易于实现,这也使它成为 IoT 开发的理想平台。MQTT 包括代理和客户端两个部分。客户端可以访问或修改设备的数据,代理是持有并传递数据。

MQTT 使用发布/订阅消息模式。客户端可以在一个话题(Topic)下面发布特定参数数据给代理。另一个对此话题感兴趣的客户可以订阅该话题,并定期收到更新的消息。

MQTT有三个角色,包括服务器代理、订阅者和发布者。

1)启动服务器代理。
2)订阅者向服务器代理订阅相关主题。
3)发布者向服务器代理发布主题信息。
4)服务器代理想所有订阅该主题的订阅者推送消息。

​ CoAP约束应用协议(Constrained Application Protocol)是一种专用于受限设备的Internet应用协议,如RFC 7252所定义,它使那些被称为“节点”的受约束设备能够使用类似的协议与更广泛的Internet进行通信。CoAP被设计用于同一受限网络(例如,低功耗、有损网络)上的设备之间、设备和因特网上的一般节点之间以及由因特网连接的不同受限网络上的设备之间使用。CoAP也被用于其他机制,如移动通信网络上的SMS。

————————————————

​ 总结:CoAP是受约束设备的专用Internet应用程序协议。
基于消息模型,定义了4个消息类型,以消息为数据通信载体,通过交换网络消息来实现设备间数据通信

基于请求/响应模型 ,对CoAP Server云端设备资源操作都是通过请求与响应机制来完成,类似HTTP,设备端可通过4个请求方法(GET, PUT, POST, DELETE)对服务器端资源进行操作。 请求与响应的数据包都是放在CoAP消息里面进行传输的

基于消息的双向通信(M2M),CoAP Client与CoAP server双方都可以独立向对方发送请求.双方可当client或者server角色

轻量最小长度仅为4B

支持可靠传输 ,数据重传,块传输。 确保数据可靠到达。

支持IP多播 , 即可以同时向多个设备发送请求(比如CoAP client搜索CoAP Server)

低功耗 ,非长连接通信

支持受限设备

支持观察模式

支持异步通信
————————————————

Ver (占两位):默认为01,其它为后续预留

T(报文类型,占两位):

Confirmable Message(CON):CON 报文需要被接受者确认,即每一个 CON报文都需要对应一个 ACK 报文或 RST 报文。即 00

Non-Confirmable Message(NON):不需要被确认的报文,常用于传感器一类只需单向传送数据的应用场景,纯单向传输,不需要应答,收不到也不管。即01

Acknowledgement Message(ACK):应答报文用于确认 CON 报文,用于确认 CON 报文。即 10

Reset Message(RST):复位报文,当服务器收到一个 CON 报文,如果报文中出现上下文缺失,导致无法处理时,服务器将返回一个 RST 报文。让客户端再发一次。即 11

TKL(占两位,标签长度指示(代表Token的长度)):0为特殊情况,代表空报文,可以没有Token

Code(占八位,响应码):分为高三位(0~7)+低五位(0 ~ 31)方式既 x.xx格式。
————————————————

区别:

CoAP协议(Constrained Application Protocol)和MQTT协议(Message Queuing Telemetry Transport)是两种物联网通信协议,用于在物联网设备之间进行通信。它们有以下几个区别:

  1. 适用范围:CoAP协议是为了在低功耗、有限资源的物联网设备上实现简单、轻量级的通信而设计的。它适用于需要低功耗和有限处理能力的设备,如传感器、执行器等。MQTT协议则更适用于需要高可靠性和延迟敏感的应用场景,如远程监测和控制系统。

  2. 通信模式:CoAP协议基于请求-响应模式,类似于HTTP协议。设备可以发送请求来获取资源,服务器会返回响应。MQTT协议则是基于发布-订阅模式,设备可以发布消息到一个特定的主题,其他订阅该主题的设备会收到消息。

  3. 通信特点:CoAP协议采用UDP传输协议,非常适合在无线网络环境下进行通信。它使用可靠传输协议(如UDP)来确保数据的可靠性。MQTT协议可以使用TCP或者WebSocket作为传输协议,确保数据的可靠性和稳定性。

  4. 协议设计:CoAP协议比MQTT协议更轻量级,它的报文格式更简单,占用的网络带宽和处理能力更少。MQTT协议则提供了更多的功能和灵活性,支持更多的QoS级别,支持持久化消息,支持遗嘱消息等。

总的来说,CoAP协议适用于资源受限的物联网设备之间的简单通信,而MQTT协议更适用于更复杂和灵活的物联网应用。选择哪种协议取决于具体的应用需求和设备的特点。

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
书籍推荐

  1. https://blog.51cto.com/u_16213627/8081771
  2. https://blog.csdn.net/weixin_43504224/article/details/130483265

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~文章来源地址https://www.toymoban.com/news/detail-822326.html

到了这里,关于Java 物联网协议MQTT和 CoAP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JGJ46-2005施工现场临时用电安全技术规范

    为贯彻国家安全生产的法律和法规,保障施工现场用电安全,防止触电和电气火灾事故发生,促进建设事业发展,制定本规范。 本规范适用于新建、改建和扩建的工业与民用建筑和市政基础设施施工现场临时用电工程中的电源中性点直接接地的220/380V三相四线制低压电力系统

    2024年02月15日
    浏览(36)
  • 前端技术探秘-Nodejs的CommonJS规范实现原理

    Node.js是一个基于ChromeV8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。Node中增添了很多内置的模块,提供各种各样的功能,同时也提供许多第三

    2024年02月05日
    浏览(51)
  • 以商业大数据技术助力数据合规流通体系建立,合合信息参编《数据经纪从业人员评价规范》团标

    经国务院批准,由北京市人民政府、国家发展和改革委员会、工业和信息化部、商务部、国家互联网信息办公室、中国科学技术协会共同主办的2023 全球数字经济大会于近期隆重召开。由数交数据经纪(深圳)有限公司为主要发起单位,合合信息等企业参编的《数据经纪从业

    2024年02月12日
    浏览(37)
  • 物联网协议Coap之Californium CoapServer解析

    目录 前言 一、CoapServer对象 1、类对象定义 2、ServerInterface接口 3、CoapServer对象  二、CoapServer服务运行分析 1、CoapServer对象实例化 1.1 调用构造方法 1.2 生成全局配置 1.3 创建Resource对象 1.4-1.8、配置消息传递器、添加CoapResource 1.9-1.12 创建线程池 1.3-1.7 端口绑定、服务配置 2、添

    2024年02月04日
    浏览(29)
  • 物联网协议Coap之Core和NetWork简介

    目录 前言 一、Coap的Core包 1、Coap对象 2、Message对象 3、Request对象 4、Response对象 二、Coap的NetWork调试 1、UDP运行模式  2、Network消息接收 3、Sender线程发送数据  三、总结         在之前的博文中,对Californium中Coap的实现进行了简要的介绍,分别从Server和Client两端进行了基础

    2024年01月21日
    浏览(43)
  • 物联网协议Coap之C#基于Mozi的CoapServer实现解析

    目录 前言 一、C#的Coap Server实现 1、CoapServer相关类 2、主要类解析 3、资源控制器定义  4、ResourceManager管理器 二、CoapServer生命周期 1、Server创建代码 2、服务端创建  3、绑定endpoint 4、准备接收请求 总结          在之前的关于物联网协议的介绍中,我们详细介绍了如何基

    2024年01月21日
    浏览(31)
  • Java实践-物联网loT入门-MQTT传输协议

    MQTT 是一个极其 轻量级 的 发布/订阅 消息 传输协议,适用于网络带宽较低的场合 . 它 通过 一个 代理服务器 (broker),任何一个 客户端 (client)都可以订阅或者发布某个主题的消息,然后订阅了该主题的客户端则会收到该消息 硬件采集的数据传入EMQX平台(采用MQTT协议),j

    2024年02月09日
    浏览(50)
  • [HTML]Web前端开发技术25(HTML5、CSS3、JavaScript )JavaScript基础消息对话框告警框确认框提示框命名规范1标识符2关键字3保留字注释标识符和变量——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 JavaScript程序 代码 消息对话框 消息对话框-告警框 消息对话框-确认框 消息对话框-提示框 JavaScript注释

    2024年02月20日
    浏览(55)
  • 什么是MQTT,物联网MQTT协议详解

    老俊目前正在从事物联网行业,对MQTT有一定的了解,本文为您简述什么是MQTT,以及MQTT怎么使用 物联网 (IoT) 和机器对机器 (M2M) 通信对我们与技术交互的方式产生了持久影响。到 2022 年底,全球连接的物联网设备数量增长了 18%,达到 144 亿, 到 2025 年估计连接的物联网设备将

    2024年02月12日
    浏览(51)
  • 【物联网协议】MQTT

    MQTT是一种基于发布/订阅模式的协议,其中客户端(称为发布者)向主题发布消息,并允许其他客户端(称为订阅者)从这些主题订阅消息。MQTT支持多个QoS级别以及最后遗愿消息(LWT)等高级特性。 MQTT客户端通常需要与MQTT代理服务器进行通信以发布或订阅消息。它们可以运

    2024年02月02日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包