发布/订阅模式(也称为 pub/sub)提供了传统客户端-服务器架构的替代方案。在客户端-服务器模型中,客户端直接与端点通信。pub/sub 模型将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦。发布者和订阅者从不直接联系彼此,实际上它们甚至不知道对方的存在。它们之间的连接由第三方组件(代理)处理。代理的任务是过滤所有传入消息并将其正确分发给订阅者。
使用 TsgcWSPClient_MQTT,您可以发布消息并订阅主题。
在连接成功后订阅主题"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;
向"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.Publish('topic1', 'Hello Subscribers topic1');
end;