AWS IoT Core
通过 MQTT 将 Delphi/C++Builder 应用程序连接到 AWS IoT Core。支持 X.509 证书的双向 TLS 或 SigV4 签名 WebSocket,以及设备影子和规则引擎集成。
通过 MQTT 将 Delphi/C++Builder 应用程序连接到 AWS IoT Core。支持 X.509 证书的双向 TLS 或 SigV4 签名 WebSocket,以及设备影子和规则引擎集成。
AWS IoT Core MQTT 3.1.1 / MQTT 5 客户端 — X.509 双向 TLS 或 SigV4-over-WebSocket 认证,加上订阅、保留消息、遗嘱及 AWS 特定的客户端 ID 约束。
TsgcIoTAmazon_MQTT_Client
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 特定的认证选择和主题约定。
设置 IoT.Authentication := iotAuth_Certificate 并加载设备证书、私钥和 AmazonRootCA1.pem — 如需要,组件在 443 端口使用 ALPN x-amzn-mqtt-ca。
对于浏览器风格的认证,设置 IoT.Authentication := iotAuth_AccessKey 并配置访问密钥/秘密密钥/区域 — 组件计算 SigV4 查询字符串预签名 URL。
切换 MQTTVersion;AWS IoT Core 两者都支持。MQTT 5 属性(会话过期、主题别名、用户属性)通过标准 MQTT 事件传递。
AWS 在 $aws/things/<thingName>/... 下保留用于影子、作业和预配的主题。像订阅其他主题一样订阅它们,以接收影子更新和作业分配。
在底层客户端绑定 WatchDog — 断开连接时,组件重新认证(适用时刷新 SigV4 查询字符串)并重新订阅。
AWS IoT 强制执行每连接限制(发布 QoS、吞吐量、消息大小)。在发布侧使用 TsgcWSRateLimiter 以保持在配额内。
本组件所实现协议的权威来源。