diff --git a/Sources/Nats/NatsConnection.swift b/Sources/Nats/NatsConnection.swift index 5fbac7d..5ad73f9 100644 --- a/Sources/Nats/NatsConnection.swift +++ b/Sources/Nats/NatsConnection.swift @@ -989,11 +989,13 @@ class ConnectionHandler: ChannelInboundHandler { promise.futureResult.whenComplete { result in do { try result.get() - self.fire(.disconnected) } catch { // 降级为 debug:网络断开时 TLS 无法完成正常关闭握手是预期行为 logger.debug("Connection closed with error (will reconnect): \(error)") } + // 无论成功还是失败,都要触发 .disconnected 事件 + // 这样上层才能感知到连接已断开 + self.fire(.disconnected) // Only start reconnect after disconnect is complete self.handleReconnect() }