当前位置:首页 > 技术文章 > 正文内容

MQTT基础

lcy2022-02-22技术文章505

mqtt通道是dgiot接入服务mqtt标准接入协议的通用通道

Dlink协议

参考阿里的Alink协议定制,原则是在没有重大问题的情况下,尽量与应用最广泛的阿里物联网平台设备接入协议对齐,方便用户自由选择物联网平台,后续会根据实际情况做一些微调

名词解释

MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布、订阅信息传输协议。可在不可靠的网络环境中进行扩展,适用于设备硬件存储空间或网络带宽有限的场景。使用MQTT协议,消息发送者与接收者不受时间和空间的限制。物联网平台支持设备使用MQTT协议接入。

支持版本

目前物联网平台支持MQTT标准协议接入,兼容5.0、3.1.1和3.1版本协议,具体的协议请参见MQTT 5.0MQTT 3.1.1和 MQTT 3.1协议文档。

与标准MQTT的区别

  • 支持MQTT的PUB、SUB、PING、PONG、CONNECT、DISCONNECT和UNSUB等报文。

  • 支持clean session。

  • 不支持will、retain msg。

  • 支持QoS 0、QoS 1,不支持QoS 2。

  • 不支持SUB QoS,消息QoS以发送方(PUB)指定为准。

  • 基于原生的MQTT Topic上支持RRPC同步模式,服务器可以同步调用设备并获取设备回执结果。

支持的MQTT 5.0特性

MQTT 5.0协议在之前版本基础上添加了大量全新特性,提高了性能和易用性。更多信息,请参见Appendix C. Summary of new features in MQTT v5.0

目前,物联网平台支持MQTT 5.0的部分新增特性。

  • 支持设置客户端和服务端发送报文的最大长度,直接过滤冗长的消息。

    MqttConnectionOptions connOpts = new MqttConnectionOptions(); connOpts.setMaximumPacketSize(1024L);
  • 支持设置QoS 1消息限流值,单位为条/秒。

    MqttConnectionOptions connOpts = new MqttConnectionOptions(); connOpts.setReceiveMaximum(5);
  • 支持设置UserProperty属性列表,每个属性由Key和Value组成,用于传输额外的属性数据。

    说明 最多可添加20个属性。属性中Key值不允许以下划线(_)开头,Key和Value最大总长度不超过128个字符。

    MqttProperties properties = new MqttProperties(); List<UserProperty> userPropertys = new ArrayList<>(); userPropertys.add(new UserProperty("key1","value1")); properties.setUserProperties(userPropertys);

    设备使用MQTT 5.0协议成功接入物联网平台后,可在云端运行日志内容中,查看到上报的UserProperty数据。

  • 新增了响应主题(ResponseTopic)和相关数据(CorrelationData),类似HTTP请求响应的模式,实现双方通信。

    例如,请求方为设备,接收方为您的业务服务器,您可通过AMQP订阅或规则流转后,从消息的属性列表中解析出ResponseTopic和CorrelationData,然后调用Pub接口,将响应发送给设备。

    MqttProperties properties = new MqttProperties(); properties.setCorrelationData("requestId12345".getBytes()); properties.setResponseTopic("/" + productKey + "/" + deviceName + "/user/get");

    说明

    • 解析出的CorrelationData, 需要通过Base64解码,才能还原成设备上报的byte数组类型数据。

    • ResponseTopic和CorrelationData的最大长度都不能超过128个字符。


 

版权声明:本文由cy's Blog发布,如需转载请注明出处。

本文链接:http://www.c3389.com/post/544.html

相关文章

常用的挂马代码

在网上看到的,总结的不错,以后挂广告用 (嘿嘿!俺不挂马) 一:框架挂马 <i...

浅析XSS(Cross Site Script)漏洞原理

浅析XSS(Cross Site Script)漏洞原理

作者:茄子宝   2007-07-04      【IT168 专稿】最近一些人频频在博客里炫耀说黑了某某门户网站,发现了某某大站...

注册表禁止某进程运行方法

echo Windows Registry Editor Version 5.00 >>1.regecho [HKEY_CURRENT_USER\Software\Microsoft\Wi...

serv-u 端口转发提权

1、在服务器上cmd 执行: lcx -slave 我的IP 5000 127.0.0.1 43958(有可能被改) 2、 在本机运行 lcx -listen 5000 21 (lcx地址要...

每个ASP程序员必备的知识

数据库连接:<%set conn=server.createobject("adodb.connection")conn.open "driver={microso...

让你的软路由通电自启动

现在网吧和企业里用软路由的越来越多,主要是因为目前如路由超强的性价比越来越被人所接受。我所维护的网吧和企业基本上都被我换成软路由了。但是初学者安装使用中经常会遇到一些问题。前几天有两个朋友给我打电话说...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。