IBM Watson物联网平台与设备和应用程序的通讯主要依靠MQTT协议,其是一种发布和预订消息传递传输协议,用于在传感器和移动设备之间高效交换实时数据。

【51CTO.com原创稿件】物联网生态系统四大范畴对应不同的厂商,分别为设备制作、物联网渠道、运用和事务。IBM凭仗Watson强壮人工智能入住我国物联网范畴,IBM Watson物联网渠道的落地,将会给我国物联网职业注入新鲜的血液。IBM Watson物联网渠道与设备和运用程序的通讯首要依托MQTT协议。关于MQTT(Message Queuing Telemetry Transport)要追溯到1999年,由IBM公司Andy Stanford-Clark博士和Arcom公司ArlenNipper博士创造,2014年,MQTT正式成为引荐的物联网传输协议规范。

MQTT 是一种发布和预定音讯传递传输协议,用于在传感器和移动设备之间高效交流实时数据。MQTT 经过 TCP/IP 运转,而且在能够直接对 TCP/IP 编码时,还可挑选运用库来处理 MQTT 协议的详细信息。供给了规模十分广泛的各种 MQTT 客户机库。

版别支撑

Watson IoT Platform 支撑以下 MQTT 音讯传递协议版别:

MQTT—发布和预定音讯传递传输协议(mqtt协议发送文件)  MQTT 消息 协议 第1张

Watson IoT Platform 支撑 MQTT 规范答应的任何内容。MQTT 独立于数据,因而无法发送图画、任何编码的文本、加密数据以及简直每种类型的二进制格局数据。

运用程序、设备和网关客户机

在 Watson IoT Platform 中,首要目标类为设备和运用程序。网关是设备的子类。MQTT 客户机向服务标识其本身的目标类用于在处于衔接状况时承认客户机的功用。目标类还承认客户机认证的机制。

运用程序和设备还可用于不同的 MQTT 主题空间。设备在约束了设备的主题空间中运转,而运用程序对整个安排的主题空间具有彻底拜访权。

服务质量等级

MQTT 协议为客户机和服务器之间的音讯传递供给了三种服务质量:“最多一次”、“至少一次”和“刚好一次”。尽管可运用任何服务质量等级发送事情和指令,但有必要细心考虑哪个适宜的服务等级满意您的需求。服务质量等级 2 选项并不总是优于等级 0。

最多一次 (QoS0)

“最多一次”服务质量等级 (QoS0) 是最快的传输方法,有时称为“触发并忘掉”。音讯将最多传递一次,或许或许彻底不会传递。网络中的传递不会得到承认,而且不会存储音讯。假如客户机断开衔接或许服务器发生毛病,那么音讯或许会丢掉。

MQTT 协议不需求服务器将服务质量等级为 0 的发布内容转发到客户机。假如客户机在服务器收到发布内容时断开衔接,依据服务器施行,或许会抛弃此发布内容。

提示:以某个时刻距离发送实时数据时,请运用服务质量等级 0。丢掉单条音讯实践上不会发生很大影响,由于之后很快将发送包括较新数据的另一条音讯。在此场景中,运用较高服务质量会带来额定本钱,却不会取得任何实践优势。

至少一次 (QoS1)

运用服务质量等级 1 (QoS1),音讯会一直至少传递一次。假如发送者收到应对之前音讯传递失利,那么一条音讯或许会传递屡次。该音讯有必要存储在发送者本地,直到发送者收到关于接纳者已发布此音讯的承认停止。存储此音讯是为了以防有必要再次发送此音讯。

刚好一次 (QoS2)

“刚好一次”服务质量等级 (QoS2) 是最安全也是最慢的传输方法。音讯一直传递刚好一次,而且有必要存储在发送者本地,直到发送者收到关于接纳者已发布此音讯的承认停止。存储此音讯是为了以防有必要再次发送此音讯。运用服务质量等级 2,会选用比等级 1 更杂乱的握手和应对序列,以保证音讯不会重复。

提示:发送指令时,假如需求承认将仅履行指定指令且仅履行一次,请运用服务质量等级 2。此示例说明晰等级 2 发生的额定开支比其他等级更为有利的状况。

预定缓冲区和 clean session

将为来自设备或运用程序的每个预定分配一个可包容 5000 条音讯的缓冲区。运用缓冲区,任何运用程序或设备可滞后于其正在处理的实时数据,还可为其做出的每个预定积压最多 5000 条暂挂音讯。缓冲区已满时,会在收到新音讯时抛弃最旧音讯。

运用 MQTT clean session 选项可拜访预定缓冲区。当 clean session 设置为 false 时,订户会收到来自缓冲区的音讯。当 clean session 设置为 true 时,会重置缓冲区。

注:不管运用什么服务质量设置,预定缓冲区约束都适用。假如运用程序无法与其做出的预定的音讯速率坚持同步,以等级 1 或 2 发送的音讯有或许无法传递到该运用程序。

音讯有用内容约束

Watson IoT Platform 支撑发送和接纳 MQTT 规范答应的任何格局的音讯。MQTT 独立于数据,因而无法发送图画、任何编码的文本、加密数据以及简直每种类型的二进制格局数据。可是,关于特定用例,存在一些约束。

关于 Watson IoT Platform 上的音讯有用内容,也存在巨细约束。

音讯有用内容格局约束

音讯有用内容可包括任何有用字符串,可是,JSON(“json”)、文本(“text”)和二进制(“bin”)格局比其他格局类型更常用。

下表概述了不同格局类型的音讯有用内容约束:

MQTT—发布和预定音讯传递传输协议(mqtt协议发送文件)  MQTT 消息 协议 第2张

***音讯有用内容巨细

重要信息:Watson IoT Platform 上的***有用内容巨细为 131072 字节。将回绝其有用内容超出约束的音讯。正在衔接的客户机也会断开衔接,而且会在确诊日志中显现一条音讯,如以下设备音讯示例中所示:

Closed connection from x.x.x.x. The message size is too large for this endpoint.

【51CTO原创稿件,协作站点转载请注明原文作者和出处为51CTO.com】

转载请说明出处
知优网 » MQTT—发布和预定音讯传递传输协议(mqtt协议发送文件)

发表评论

您需要后才能发表评论