Das Publish/Subscribe-Muster (auch bekannt als Pub/Sub) bietet eine Alternative zur traditionellen Client-Server-Architektur. Im Client-Server-Modell kommuniziert ein Client direkt mit einem Endpunkt. Das Pub/Sub-Modell entkoppelt den Client, der eine Nachricht sendet (den Publisher), von dem Client oder den Clients, die die Nachrichten empfangen (den Subscribern). Die Publisher und Subscriber kontaktieren sich niemals direkt. Tatsächlich sind sie sich nicht einmal bewusst, dass der andere existiert. Die Verbindung zwischen ihnen wird von einer dritten Komponente (dem Broker) verwaltet. Die Aufgabe des Brokers ist es, alle eingehenden Nachrichten zu filtern und sie korrekt an die Subscriber zu verteilen.
Mit TsgcWSPClient_MQTT können Sie Nachrichten veröffentlichen und Topics abonnieren.
Abonnieren Sie nach einer erfolgreichen Verbindung das Topic "topic1".
oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := 'test.mosquitto.org';
oClient.Port := 8080;
oMQTT := TsgcWSPClient_MQTT.Create(nil);
oMQTT.Client := oClient;
oClient.Active := True;
procedure OnMQTTConnect(Connection: TsgcWSConnection; const Session: Boolean; const ReasonCode: Integer;
const ReasonName: string; const ConnectProperties: TsgcWSMQTTCONNACKProperties);
begin
oMQTT.Subscribe('topic1');
end;
Eine Nachricht an alle Abonnenten von "topic1" veröffentlichen
oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := 'test.mosquitto.org';
oClient.Port := 8080;
oMQTT := TsgcWSPClient_MQTT.Create(nil);
oMQTT.Client := oClient;
oClient.Active := True;
procedure OnMQTTConnect(Connection: TsgcWSConnection; const Session: Boolean; const ReasonCode: Integer;
const ReasonName: string; const ConnectProperties: TsgcWSMQTTCONNACKProperties);
begin
oMQTT.Publish('topic1', 'Hello Subscribers topic1');
end;