文章 "为 Metatrader 5 开发 MQTT 客户端:TDD 方法 - 第 5 部分"

 

新文章 为 Metatrader 5 开发 MQTT 客户端:TDD 方法 - 第 5 部分已发布:

本文是系列文章的第五部分,介绍了我们为 MQTT 5.0 协议开发本地 MQL5 客户端的步骤。在这一部分中,我们将介绍 PUBLISH 数据包的结构、如何设置其发布标志(Publish Flag)、如何对主题名称(Topic Name)字符串进行编码,以及在需要时如何设置数据包标识符(Packet Identifier)。

MQTT 是一种 pub/sub(发布/订阅) 消息共享协议。因此,我们可以预计其核心是 PUBLISH(发布) 和 SUBSCRIBE (订阅)数据包。所有其他类型的数据包都是为了获取它们而存在的。

除了能写 PUBLISH 数据包外,我们还必须能读取它们,因为我们的客户端从其他客户端收到的消息也是 PUBLISH 数据包。这是因为传输协议是对称的。

PUBLISH 数据包有一个不同的固定报头(含发布标志)和一个可变报头(含以 UFT-8 字符串编码的所需主题名称和所需数据包标识符(如果 QoS > 0))。除此之外,它最终还能使用 MQTT 5.0 中引入的几乎所有属性和用户属性,包括与请求/响应(Request/Response)交互模式相关的属性。

在本文中,我们将了解其报头的结构,以及我们如何测试和实现发布标志、主题名称和数据包标识符。

作者:Jocimar Lopes