Het evenement OnMQTTBeforeConnect bevat een parameter genaamd aCleanSession. Als de waarde van deze parameter True is, betekent dit dat de client een nieuwe sessie wil starten; als de server een opgeslagen sessie heeft, moet hij deze verwijderen. Wanneer het evenement OnMQTTConnect wordt geactiveerd, is de parameter aSession dan false. Als de waarde van deze parameter False is en er een sessie is gekoppeld aan deze client-identificator, moet de server de communicatie met de client hervatten op basis van de bestaande sessie.
Dus als de client een onverwachte verbreking heeft en u de sessie wilt hervatten waar de verbreking plaatsvond, stel dan in OnMQTTBeforeConnect aCleanSession = True in en aClientIdentifier = Client ID van Sessie.
Controleer na een succesvolle verbinding het evenement OnMQTTConnect op de waarde van de parameter Session.
Session = true, betekent dat de sessie is hervat.
Session = false, betekent dat het een nieuwe sessie is.
procedure TfrmWebSocketClient.MQTTMQTTBeforeConnect(Connection: TsgcWSConnection;
var aCleanSession: Boolean; var aClientIdentifier: string);
begin
aCleanSession := false;
aClientIdentifier := 'previous client id';
end;
procedure OnMQTTConnect(Connection: TsgcWSConnection; const Session: Boolean;
const ReasonCode: Integer; const ReasonName: string; const ConnectProperties: TsgcWSMQTTCONNACKProperties);
begin
if Session then
WriteLn('Session resumed')
else
WriteLn('New Session');
end;