This commit is contained in:
Artem Barysh 2025-07-23 13:22:46 +03:00
parent af889fc1fd
commit 80061bb7c3

View File

@ -462,19 +462,18 @@ final class MqttClientImpl implements MqttClient {
return; return;
} }
disconnected = true;
log.trace("[{}] Disconnecting from server", channel != null ? channel.id() : "UNKNOWN"); log.trace("[{}] Disconnecting from server", channel != null ? channel.id() : "UNKNOWN");
if (this.channel != null) { if (this.channel != null) {
MqttMessage message = new MqttMessage(new MqttFixedHeader(MqttMessageType.DISCONNECT, false, MqttQoS.AT_MOST_ONCE, false, 0)); MqttMessage message = new MqttMessage(new MqttFixedHeader(MqttMessageType.DISCONNECT, false, MqttQoS.AT_MOST_ONCE, false, 0));
sendAndFlushPacket(message).addListener((ChannelFutureListener) future -> { sendAndFlushPacket(message).addListener((ChannelFutureListener) future -> {
future.channel().close(); future.channel().close();
disconnected = true;
}); });
eventLoop.schedule(() -> { eventLoop.schedule(() -> {
if (channel.isOpen()) { if (channel.isOpen()) {
log.trace("[{}] Channel still open after {} second; forcing close now", channel.id(), DISCONNECT_FALLBACK_DELAY_SECS); log.trace("[{}] Channel still open after {} second; forcing close now", channel.id(), DISCONNECT_FALLBACK_DELAY_SECS);
this.channel.close(); this.channel.close();
disconnected = true;
} }
}, DISCONNECT_FALLBACK_DELAY_SECS, TimeUnit.SECONDS); }, DISCONNECT_FALLBACK_DELAY_SECS, TimeUnit.SECONDS);
} }