AWS IoT Core

Collega applicazioni Delphi/C++Builder ad AWS IoT Core via MQTT. TLS mutuo con certificati X.509 o WebSocket firmato SigV4, oltre all'integrazione con shadow e rule-engine.

TsgcIoTAmazon_MQTT_Client

Client MQTT 3.1.1 / MQTT 5 per AWS IoT Core — autenticazione X.509 a TLS mutuo o SigV4-over-WebSocket, oltre a sottoscrizioni, messaggi retained, will e i vincoli sul client-id specifici di AWS.

Classe componente

TsgcIoTAmazon_MQTT_Client

Protocollo

AWS IoT MQTT

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Standard / Professional / Enterprise

Imposta le credenziali, connetti, pubblica

Imposta l'host endpoint AWS, indica al componente il tuo certificato / chiave X.509 (o fornisci le access key AWS per SigV4), poi connetti, sottoscrivi e pubblica come con qualunque client 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 mutual 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;

Cosa c'è all'interno

Un client MQTT preconfigurato per AWS IoT Core che gestisce le scelte di autenticazione e le convenzioni sui topic specifiche di AWS.

TLS mutuo X.509

Imposta IoT.Authentication := iotAuth_Certificate e carica certificato del dispositivo, chiave privata e AmazonRootCA1.pem — il componente usa l'ALPN x-amzn-mqtt-ca sulla porta 443 se necessario.

SigV4 su WebSocket

Per l'autenticazione in stile browser imposta IoT.Authentication := iotAuth_AccessKey e configura access-key / secret-key / region — il componente calcola l'URL pre-firmato SigV4 in query-string.

MQTT 3.1.1 + MQTT 5

Cambia MQTTVersion; AWS IoT Core supporta entrambi. Le property di MQTT 5 (session expiry, topic alias, user properties) fluiscono attraverso gli eventi MQTT standard.

Convenzioni sui topic AWS

AWS riserva i topic sotto $aws/things/<thingName>/... per shadow, jobs e provisioning. Iscriviti come a qualunque altro topic per ricevere aggiornamenti shadow e assegnazioni di job.

Sicuro alla riconnessione

Aggancia WatchDog al client sottostante — alla disconnessione il componente si riautentica (nuova query-string SigV4 quando serve) e si reiscrive.

Limiti di throughput

AWS IoT impone limiti per connessione (publish QoS, throughput, dimensione del messaggio). Usa un TsgcWSRateLimiter in publish per restare entro le quote.

Specifiche e riferimenti

Fonti autorevoli per il protocollo implementato da questo componente.

Documentazione e demo

Collegamenti diretti al riferimento del componente, al progetto demo pronto all'uso e al download della versione di prova.

Guida online — TsgcIoTAmazon_MQTT_Client Riferimento completo di proprietà, metodi ed eventi di questo componente.
Progetto demo — Demos\10.IoT_Clients Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre ogni componente della libreria.

Pronto a connettere Delphi ad AWS IoT?

Scarica la versione di prova gratuita e fai streaming di telemetria IoT da dispositivi Delphi ad AWS IoT Core.