Azure IoT Hub

通过 MQTT 将 Delphi/C++Builder 应用程序连接到 Azure IoT Hub。支持 SAS 令牌或 X.509 设备认证、设备孪生、直接方法调用和云到设备消息传递。

TsgcIoTAzure_MQTT_Client

Azure IoT Hub MQTT 3.1.1 客户端 — SAS 令牌或 X.509 认证、设备孪生(期望/报告)、直接方法、云到设备消息及 Azure 特定主题约定。

组件类

TsgcIoTAzure_MQTT_Client

平台

Windows, macOS, Linux, iOS, Android

版本

Standard / Professional / Enterprise

设置集线器、设置凭据、连接

设置 IoT Hub 主机、deviceId 和 SAS 密钥(或 X.509 证书),然后连接以订阅 $iothub/twin/... 并发布到 devices/<id>/messages/events/

uses
  sgcIoT;

var
  Azure: TsgcIoTAzure_MQTT_Client;
begin
  Azure := TsgcIoTAzure_MQTT_Client.Create(nil);
  Azure.IoT.Host     := '.azure-devices.net';
  Azure.IoT.DeviceId := 'sensor-001';

  // SAS token authentication
  Azure.IoT.Authentication := iotAuth_SAS;
  Azure.IoT.SAS.Key := 'base64-shared-access-key';

  Azure.OnMQTTConnect := procedure(Connection: TsgcWSConnection;
    const Session: Boolean; const ReasonCode: Integer;
    const ReasonName: string;
    const ConnectProperties: TsgcWSMQTTCONNACKProperties)
  begin
    // 订阅云到设备消息
    Azure.Subscribe('devices/sensor-001/messages/devicebound/#');

    // 订阅孪生期望属性更新
    Azure.Subscribe('$iothub/twin/PATCH/properties/desired/#');
  end;

  Azure.Active := True;

  // 发布遥测数据
  Azure.Publish('devices/sensor-001/messages/events/',
    '{"temp":22.5}');
end;
// uses: sgcIoT
TsgcIoTAzure_MQTT_Client *Azure = new TsgcIoTAzure_MQTT_Client(this);
Azure->IoT->Host     = ".azure-devices.net";
Azure->IoT->DeviceId = "sensor-001";
Azure->IoT->Authentication = iotAuth_SAS;
Azure->IoT->SAS->Key = "base64-shared-access-key";

Azure->Active = true;

内部功能

预配置的 Azure IoT Hub MQTT 客户端,构建 Microsoft 所需的用户名/密码/主题字符串。

SAS 令牌认证

设置 IoT.Authentication := iotAuth_SAS 并提供设备密钥 — 组件生成带正确资源 URI 的短期 SAS 令牌并用 HMAC-SHA256 签名。

X.509 认证

设置 IoT.Authentication := iotAuth_Certificate 并加载叶证书/私钥 — 支持 IoT Hub 指纹和 CA 签名流程。

设备孪生

订阅 $iothub/twin/PATCH/properties/desired/# 接收期望属性推送;向 $iothub/twin/PATCH/properties/reported/?$rid= 发布以更新报告状态。

直接方法

订阅 $iothub/methods/POST/# 接收入站直接方法调用;在 $iothub/methods/res/<status>/?$rid=<id> 上回复响应载荷。

云到设备

订阅 devices/<id>/messages/devicebound/# 接收集线器排队的消息。组件通过标准 OnMQTTPublish 事件传递每条消息。

安全重连

底层客户端上的 WatchDog 在重连时重新认证(刷新 SAS 令牌)并重新订阅所有活跃主题 — 应用程序看到连续的数据流。

规范与参考

本组件所实现协议的权威来源。

文档与演示

直达组件参考,获取可立即运行的演示项目,并下载试用版。

在线帮助 — TsgcIoTAzure_MQTT_Client 本组件的完整属性、方法和事件参考。
演示项目 — Demos\10.IoT_Clients 可立即运行的示例项目,随 sgcWebSockets 包一起提供 — 请从下方下载试用版。
技术文档 (PDF) 仅涵盖本组件的功能、快速入门、Delphi 和 C++ Builder 代码示例及主要参考来源。
用户手册 (PDF) 涵盖库中每个组件的综合手册。

准备好将 Delphi 连接到 Azure IoT 了吗?

下载免费试用版,将 IoT 遥测数据从 Delphi 设备流式传输到 Azure IoT Hub。