AWS IoT Core

通过 MQTT 将 Delphi/C++Builder 应用程序连接到 AWS IoT Core。支持 X.509 证书的双向 TLS 或 SigV4 签名 WebSocket,以及设备影子和规则引擎集成。

TsgcIoTAmazon_MQTT_Client

AWS IoT Core MQTT 3.1.1 / MQTT 5 客户端 — X.509 双向 TLS 或 SigV4-over-WebSocket 认证,加上订阅、保留消息、遗嘱及 AWS 特定的客户端 ID 约束。

组件类

TsgcIoTAmazon_MQTT_Client

协议

AWS IoT MQTT

平台

Windows, macOS, Linux, iOS, Android

版本

Standard / Professional / Enterprise

设置凭据、连接、发布

设置 AWS 端点主机,将组件指向您的 X.509 证书/密钥(或为 SigV4 提供 AWS 访问密钥),然后像普通 MQTT 客户端一样连接、订阅和发布。

uses
  sgcIoT;

var
  AWSIoT: TsgcIoTAmazon_MQTT_Client;
begin
  AWSIoT := TsgcIoTAmazon_MQTT_Client.Create(nil);
  AWSIoT.IoT.Host := 'a1b2c3d4e5f.iot.eu-west-1.amazonaws.com';

  // X.509 双向 TLS
  AWSIoT.IoT.Authentication := iotAuth_Certificate;
  AWSIoT.IoT.Certificate.CertFile := 'device.cert.pem';
  AWSIoT.IoT.Certificate.KeyFile  := 'device.private.key';
  AWSIoT.IoT.Certificate.RootCert := 'AmazonRootCA1.pem';

  AWSIoT.OnMQTTConnect := procedure(Connection: TsgcWSConnection;
    const Session: Boolean; const ReasonCode: Integer;
    const ReasonName: string;
    const ConnectProperties: TsgcWSMQTTCONNACKProperties)
  begin
    AWSIoT.Subscribe('devices/#');
  end;

  AWSIoT.Active := True;
  AWSIoT.Publish('devices/sensor1/telemetry', '{"temp":22.5}');
end;
// uses: sgcIoT
TsgcIoTAmazon_MQTT_Client *AWSIoT = new TsgcIoTAmazon_MQTT_Client(this);
AWSIoT->IoT->Host = "a1b2c3d4e5f.iot.eu-west-1.amazonaws.com";
AWSIoT->IoT->Authentication = iotAuth_Certificate;
AWSIoT->IoT->Certificate->CertFile = "device.cert.pem";
AWSIoT->IoT->Certificate->KeyFile  = "device.private.key";

AWSIoT->Active = true;

内部功能

预配置的 AWS IoT Core MQTT 客户端,处理 AWS 特定的认证选择和主题约定。

X.509 双向 TLS

设置 IoT.Authentication := iotAuth_Certificate 并加载设备证书、私钥和 AmazonRootCA1.pem — 如需要,组件在 443 端口使用 ALPN x-amzn-mqtt-ca

SigV4 over WebSocket

对于浏览器风格的认证,设置 IoT.Authentication := iotAuth_AccessKey 并配置访问密钥/秘密密钥/区域 — 组件计算 SigV4 查询字符串预签名 URL。

MQTT 3.1.1 + MQTT 5

切换 MQTTVersion;AWS IoT Core 两者都支持。MQTT 5 属性(会话过期、主题别名、用户属性)通过标准 MQTT 事件传递。

AWS 主题约定

AWS 在 $aws/things/<thingName>/... 下保留用于影子、作业和预配的主题。像订阅其他主题一样订阅它们,以接收影子更新和作业分配。

安全重连

在底层客户端绑定 WatchDog — 断开连接时,组件重新认证(适用时刷新 SigV4 查询字符串)并重新订阅。

吞吐量限制

AWS IoT 强制执行每连接限制(发布 QoS、吞吐量、消息大小)。在发布侧使用 TsgcWSRateLimiter 以保持在配额内。

规范与参考

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

文档与演示

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

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

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

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