Consola: error de WS con detalle diagnóstico (clase + HTTP)
onFailure tiraba el mensaje útil: una caída de handshake llegaba como "fallo del WebSocket" a secas (t.message null). Ahora reporta clase de excepción + código HTTP de la respuesta, para distinguir 401, conexión rechazada, proxy sin upgrade o TLS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Semantic delta
No definition changed: this change is text, documentation or data.
1 files · +10 −1
diff --git a/consola/src/main/java/com/rizoma/consola/data/GatewayClient.kt b/consola/src/main/java/com/rizoma/consola/data/GatewayClient.kt
index e3edeab..4eba9da 100644
--- a/consola/src/main/java/com/rizoma/consola/data/GatewayClient.kt
+++ b/consola/src/main/java/com/rizoma/consola/data/GatewayClient.kt
@@ -120,7 +120,16 @@ class GatewayClient(@Volatile var config: GatewayConfig) {
}
override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) {
- listener.onError(t.message ?: "fallo del WebSocket")
+ // Detalle diagnóstico: el handshake suele fallar ANTES del
+ // primer mensaje. Sin esto, una caída de conexión llega como
+ // "fallo del WebSocket" a secas (t.message null) y no se sabe
+ // si es 401, conexión rechazada, proxy sin upgrade, o TLS.
+ val detail = buildString {
+ append(t.javaClass.simpleName)
+ t.message?.let { append(": "); append(it) }
+ response?.let { append(" · HTTP "); append(it.code) }
+ }
+ listener.onError(detail)
listener.onClosed(t.message)
}
})