fix: 修复 errorCaught 导致的频繁重连问题

- 移除 errorCaught 中重复的 handleDisconnect 调用
- 将 uncleanShutdown 日志降级为 debug 级别
- 避免双重触发导致的断开重连循环
This commit is contained in:
wenzuhuai
2026-01-23 09:06:50 +08:00
parent b014494819
commit cd680abe55

View File

@@ -921,14 +921,14 @@ class ConnectionHandler: ChannelInboundHandler {
if let natsErr = error as? NatsErrorProtocol { if let natsErr = error as? NatsErrorProtocol {
self.fire(.error(natsErr)) self.fire(.error(natsErr))
} else { } else {
logger.error("unexpected error: \(error)") // debug
// uncleanShutdown TLS
logger.debug("Channel error (will reconnect if needed): \(error)")
} }
// Unified handling: use handleDisconnect for all non-closed/non-disconnected states // handleDisconnect
let currentState = state.withLockedValue { $0 } // context.close() channelInactive
if currentState != .closed && currentState != .disconnected { //
handleDisconnect()
}
} }
func handleDisconnect() { func handleDisconnect() {