Мне нужно подключиться к серверу MQTT, получить некоторые сообщения, затем повторно подключиться (отключить и снова подключиться).
Я использую sgcWebSockets v4.2.1 и официальный код подключения:
// Create websocket client and set server options
oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := 'wss://myserver';
oClient.Port := 443;
// Create MQTT protocol and assign to websocket client
oMQTT := TsgcWSPClient_MQTT.Create(nil);
oMQTT.Client := oClient;
// MQTT Authentication
oMQTT.Authentication.Enabled := True;
oMQTT.Authentication.Username := 'user';
oMQTT.Authentication.Password := 'pass';
// Handle MQTT methods
oMQTT.OnMQTTConnect := OnMQTTConnectHandler;
oMQTT.OnMQTTDisconnect := OnMQTTDisconnectHandler;
// connect to server
oClient.Active := True;
Теперь мне нужно отключиться.Как мне это сделать?
Я пробовал несколько способов, но все они, похоже, не сработали.Ни один из них не отображается как «Клиент отключен» в журналах сервера MQTT, даже:
// "RefusedUserPassword" on connecting again
// (since server never got the Disconnect message?)
//oClient.Active := False;
// Invalid control OptCode crash
//oMQTT.Disconnect;
//oClient.Active := False;
// RefusedUserPassword on connecting again
// (since server never got the Disconnect message?)
//oClient.Active := False;
//oMQTT.Disconnect;
// Odd error or no connection
//oMQTT.Disconnect;
Как правильно отключить (восстановить соединение) с сервера с помощью sgcWebSockets MQTT?Если это неприятно, как правильно отключить и утилизировать старое соединение, чтобы создать его заново?