Skip to content

Tester de WebSocket online (cliente ws/wss)

Binario visto en HEX y tramas binarias reales enviadas desde HEX/Base64; códigos de cierre con su motivo y una lista de comprobación. Prueba ws:// o wss:// en el navegador. Los mensajes van directo a tu servidor, no al nuestro.

Se ejecuta en el navegador Gratis
Tu navegador envía los mensajes directamente al servidor que indicas: no pasan por los servidores de go-tools.
Rellenar: (servicio de eco de terceros: su disponibilidad no está garantizada y tus mensajes llegan a ese tercero)
Sin conectar

Los mensajes aparecen aquí. No se abre ninguna conexión WebSocket hasta que pulses Conectar.

Envío periódico (heartbeat de aplicación)
ms

Esto envía un mensaje de texto normal con un temporizador. No es una trama ping a nivel de protocolo: las páginas web no pueden enviar ni ver tramas ping/pong. Desactivado por defecto, porque un servidor que no lo espera puede cerrar la conexión.

La conexión, los mensajes de texto y binarios, los códigos de cierre, los fallos de handshake, el tiempo de espera de conexión, el handshake de Socket.IO, el heartbeat, la reconexión y una avalancha de 10 000 mensajes se prueban de extremo a extremo contra un servidor WebSocket local; el comportamiento de los navegadores descrito en esta página se midió en Chromium, Firefox y WebKit en octubre de 2026. — Equipo Go Tools · Oct 13, 2026

Creado y verificado por el equipo de ingeniería de Go Tools.

Tester de WebSocket: respuestas rápidas

¿Puede esta página HTTPS conectarse a ws://localhost?

Sí en Chrome, tras permitir el acceso a la red local Depende del navegador (a octubre de 2026). Chrome 147 y posteriores preguntan primero si la página puede acceder a los dispositivos de tu red local; cuando eliges Permitir, se conectan ws://localhost y ws:// a una dirección IP de la LAN. Firefox se conecta a localhost directamente, pero bloquea las direcciones de la LAN. Safari bloquea ws:// desde páginas HTTPS.

¿Por qué una conexión fallida solo dice 1006?

El navegador oculta el motivo Cuando el handshake falla, los navegadores están obligados a dar a la página solo un error y el código de cierre 1006, nunca el estado HTTP ni el motivo. Pulsa F12: la consola de Chrome y Edge muestra el código de estado que devolvió el servidor.

¿Puedo añadir una cabecera Authorization?

Los navegadores no pueden definir cabeceras No. La API WebSocket del navegador no permite definir cabeceras de la petición. Pon el token en un parámetro de la URL, en un subprotocolo o en una cookie, según lo que acepte tu servidor.

¿El heartbeat es una trama ping?

Es un mensaje normal No. Las páginas web no pueden enviar ni ver las tramas ping/pong del protocolo; el navegador responde por sí solo a los pings del servidor. El envío periódico de esta herramienta es un mensaje de texto normal que se envía cada cierto intervalo, y está desactivado por defecto.

¿Por qué no puedo conectarme a un servidor Socket.IO?

Usa el preajuste Socket.IO Socket.IO no es WebSocket puro. Elige el preajuste Socket.IO: se conecta a /socket.io/?EIO=4&transport=websocket, responde 40 al paquete de apertura y contesta cada ping 2 con un pong 3 (Socket.IO v3/v4).

¿Qué es un tester de WebSocket online?

Un tester de WebSocket es un cliente que apuntas a un servidor WebSocket para ver si acepta la conexión y qué devuelve. Introduces una dirección ws:// o wss://, te conectas, envías mensajes de texto o binarios y lees las respuestas: la forma más rápida de comprobar un endpoint del backend, un proxy inverso o un dispositivo que habla WebSocket sin escribir código cliente.

Este tester funciona en tu navegador: la conexión va directamente de tu navegador al servidor que indicas, y los mensajes no pasan por los servidores de go-tools. Por eso también tiene los límites del navegador. No puede añadir cabeceras de petición personalizadas, no puede enviar tramas ping a nivel de protocolo y, cuando un handshake falla, el navegador solo le comunica a la página el código de cierre 1006, no el motivo.

Lo que aporta frente a la consola del navegador a secas: mensajes binarios mostrados en HEX (o Base64) y enviados desde HEX o Base64 como tramas binarias reales, JSON formateado automáticamente, códigos de cierre explicados, una lista de comprobación cuando una conexión falla, un aviso antes de conectar cuando es probable que el navegador bloquee la dirección y un registro que sigue respondiendo con unos 2000 mensajes por segundo (medido).

09:30:01.204 · Connecting to ws://localhost:8080/ws
09:30:01.219 · Connected · subprotocol: chat
09:30:02.517 → TXT 17 B {"type":"hello"}
09:30:02.531 ← TXT 25 B {"type":"hello","ok":true}
09:30:03.002 → BIN 4 B 48 69 00 FF
09:30:03.010 ← BIN 4 B 48 69 00 FF
09:30:09.880 · Closed · code 4001: application-defined code

Funciones del tester de WebSocket

Localhost y LAN: indicaciones para cada navegador antes de conectar

Antes de conectar, la herramienta revisa la dirección: un ws:// sin cifrar a un nombre de dominio desde esta página HTTPS será bloqueado, así que te lo advierte y sugiere wss://. Para localhost y direcciones IP de la LAN te indica que Chrome pedirá acceso a la red local, y en qué se diferencian Firefox y Safari (a octubre de 2026).

Mensajes binarios en HEX, envíos binarios reales

Los mensajes binarios recibidos se muestran en HEX, 16 bytes por línea, o en Base64. Escribe los bytes como 48 69 00 FF, 0x48,0x69 o en Base64 y salen como mensaje binario; los caracteres no válidos y las cantidades impares de dígitos se señalan con su posición, y la vista previa de bytes muestra exactamente lo que se enviará.

Códigos de cierre y fallos con pistas para resolverlos

Cada cierre muestra el código, el texto del motivo y si se completó el handshake de cierre, con el significado de los códigos estándar 1000–1015 y una nota para los códigos de aplicación 4000–4999. Un fallo antes de abrirse la conexión genera una lista de comprobación en lugar de una suposición.

Registro rápido con búsqueda y exportación

Los mensajes se dibujan una vez por fotograma, así que la página sigue respondiendo con unos 2000 mensajes por segundo en nuestras pruebas. Cada entrada indica sentido, marca de tiempo en milisegundos, tipo y tamaño en bytes. Filtra por sentido, busca, pausa la vista, conserva las últimas N entradas, copia o exporta como texto.

Subprotocolos, tiempo de espera, preajuste Socket.IO

Solicita uno o varios subprotocolos (separados por comas) y comprueba si el servidor confirmó alguno. Un tiempo de espera de conexión corta los handshakes que el servidor nunca responde. El preajuste Socket.IO completa el handshake de Engine.IO v4 y responde a los pings por ti.

Heartbeat y reconexión opcionales

El envío periódico repite el mensaje que elijas cada cierto intervalo, y la reconexión automática reintenta con espera exponencial tras una caída inesperada. Ambos están desactivados por defecto, y la herramienta nunca envía nada que no hayas pedido.

Ejemplos de prueba WebSocket: localhost, binario, códigos de cierre, Socket.IO

Probar un servidor de desarrollo local

ws://localhost:8080/ws
Conectado
→ TXT 17 B {"type":"hello"}
← TXT 25 B {"type":"hello","ok":true}

En Chrome 147 y posteriores, el navegador pregunta primero si permitir el acceso a tu red local; elige Permitir. Firefox se conecta a localhost directamente; Safari bloquea ws:// desde esta página HTTPS (a octubre de 2026).

Enviar un mensaje binario desde HEX

48 69 00 FF
→ BIN 4 B 48 69 00 FF

En modo HEX la herramienta envía un mensaje binario con estos cuatro bytes, no el texto 48 69 00 FF. En Base64, SGkA/w== envía los mismos cuatro bytes.

Leer un cierre del servidor

El servidor cierra con el código 4001, motivo «token expired»
Cerrado · código 4001: código definido por la aplicación · cierre limpio
Motivo: token expired

Los códigos 4000–4999 los define la aplicación, así que busca 4001 en la documentación del servidor. Los códigos 1000–1015 son estándar y se explican en el registro.

Conectarse a un servidor Socket.IO

Protocolo: Socket.IO v3/v4, dirección ws://localhost:3000
Conectando a ws://localhost:3000/socket.io/?EIO=4&transport=websocket
← 0{"sid":"…","pingInterval":25000,…}
→ 40
← 40{"sid":"…"}

El preajuste completa la ruta y la query de Socket.IO, responde 40 para unirse al namespace por defecto y contesta cada ping 2 con 3. Envía los eventos como 42["event","data"].

Cómo probar un WebSocket online

  1. 1

    Introduce la dirección del servidor

    Escribe o pega una dirección ws:// o wss://; http:// y https:// se tratan como ws:// y wss://. Revisa la nota bajo la dirección: avisa cuando es probable que el navegador la bloquee.

  2. 2

    Añade subprotocolos si el servidor los necesita

    Algunos servidores exigen un subprotocolo, por ejemplo mqtt. Introduce uno o varios, separados por comas. Tras conectar, el registro muestra cuál confirmó el servidor.

  3. 3

    Conecta

    Pulsa Conectar. Para localhost o una dirección de la LAN en Chrome, elige Permitir cuando te pregunte por el acceso a la red local. Si la conexión falla, sigue la lista de comprobación que aparece.

  4. 4

    Envía y lee mensajes

    Elige Texto, HEX o Base64, revisa la vista previa y pulsa Ctrl+Enter. El JSON recibido se formatea y el binario se muestra en HEX; cambia el binario a Base64 en la barra de herramientas del registro.

  5. 5

    Filtra y luego copia o exporta

    Filtra por sentido o busca en el registro, pausa la vista durante una avalancha de mensajes y luego copia o exporta el registro como texto con marcas de tiempo, sentido y tamaños en bytes.

Errores habituales de conexión WebSocket

ws:// a un nombre de dominio desde una página HTTPS

Los navegadores bloquean un ws:// sin cifrar a un nombre de dominio desde una página cargada por HTTPS (contenido mixto). Chrome y Firefox lo rechazan al instante con un SecurityError. Usa wss://; para un servidor de la LAN en Chrome, escribe su dirección IP (hay que permitir el acceso a la red local).

✗ Incorrecto
ws://api.example.com/ws
✓ Correcto
wss://api.example.com/ws

HEX escrito en modo texto

En modo texto, 48 69 se envía como los caracteres 4, 8, espacio, 6, 9. Cambia a HEX para enviar los bytes 0x48 0x69 como mensaje binario.

✗ Incorrecto
Modo texto: 48 69 → TXT 5 B
✓ Correcto
Modo HEX: 48 69 → BIN 2 B

URL de Socket.IO usada como WebSocket puro

Un servidor Socket.IO rechaza un WebSocket puro en su ruta raíz y, si no recibe respuesta a su handshake y a sus pings, cierra la conexión. Usa el preajuste Socket.IO.

✗ Incorrecto
ws://localhost:3000
✓ Correcto
ws://localhost:3000/socket.io/?EIO=4&transport=websocket

Token en una cabecera de la petición

Los navegadores no pueden enviar una cabecera Authorization con el handshake de WebSocket. Si tu servidor lo admite, pasa el token como parámetro de la URL o como subprotocolo.

✗ Incorrecto
Authorization: Bearer eyJ…
✓ Correcto
wss://api.example.com/ws?token=eyJ…

Cuándo sirve un tester de WebSocket online

Comprobar un endpoint del backend
Confirma que una nueva ruta WebSocket responde, examina los primeros mensajes que envía y prueba cómo maneja entradas mal formadas, antes de que exista el frontend.
Depurar un proxy inverso
Detrás de Nginx o de un gateway, comprueba si el upgrade llega y cuánto tiempo sobrevive una conexión inactiva.
IoT y protocolos binarios
Los dispositivos y brokers que hablan binario sobre WebSocket se pueden leer en HEX y recibir bytes exactos enviados desde HEX o Base64.
Reproducir códigos de cierre
Mira el código de cierre y el motivo que el servidor envía de verdad, por ejemplo cuando caduca un token o un cliente supera el límite de peticiones.
Visualización con alto volumen de mensajes
Observa cómo un servidor envía unos 2000 mensajes por segundo (medido) sin que se congele la página, con contadores de mensajes y bytes.

Cómo funcionan las conexiones WebSocket en el navegador

El handshake de apertura
Un WebSocket empieza como una petición HTTP con Upgrade: websocket. El navegador construye por sí mismo las cabeceras de la petición —Origin, Sec-WebSocket-Key, Sec-WebSocket-Version: 13 y Sec-WebSocket-Protocol a partir de la lista de subprotocolos— y la página no puede añadir otras. El servidor responde 101 Switching Protocols y, a partir de ahí, ambos lados intercambian mensajes.
Mensajes de texto y binarios
send() con una cadena envía un mensaje de texto codificado en UTF-8; send() con bytes envía un mensaje binario. Las páginas reciben mensajes completos, nunca tramas, fragmentos ni máscaras. Esta herramienta establece binaryType en arraybuffer para que los mensajes binarios lleguen en orden y puedan mostrarse en HEX.
Por qué los errores no traen detalles
El estándar WebSocket prohíbe a los navegadores decir a los scripts por qué falló una conexión —un fallo de DNS, un puerto rechazado, un error de certificado o un HTTP 401 se ven igual— para que una página no pueda sondear tu red local. Las páginas ven un evento error y el código de cierre 1006 (Firefox notifica los errores de certificado como 1015).
Contenido mixto y acceso a la red local
Una página HTTPS no puede abrir un ws:// sin cifrar a un host público. Desde Chrome 147, WebSocket también entra en el acceso a la red local (Local Network Access): llegar a localhost o a una IP privada desde una página pública requiere tu permiso. Firefox exime las direcciones de loopback; Safari no (a octubre de 2026).
Códigos de cierre
Un cliente solo puede cerrar con 1000 o con 3000–4999, y el motivo puede ocupar como máximo 123 bytes de UTF-8. 1005 (sin código de estado) y 1006 (cierre anómalo) nunca viajan por la red; los informa el navegador. 1015 se informa para fallos de TLS solo en algunos navegadores.

Consejos para probar WebSocket

Usa wss:// fuera de tu máquina
El wss:// cifrado con un certificado de confianza llega a servidores públicos desde esta página en todos los navegadores y protege los tokens que van en la URL; para localhost o direcciones de la LAN, Chrome sigue pidiendo primero el permiso de red local. Deja el ws:// sin cifrar para localhost.
Revisa la consola cuando falle el handshake
La página solo ve 1006. Chrome y Edge muestran el estado HTTP en la consola, que suele apuntar directamente a problemas de autenticación, de ruta o del proxy.
Permite el Origin en el servidor
Los navegadores siempre envían Origin. Si tu servidor lo comprueba, permite https://go-tools.org mientras pruebas; las cabeceras CORS no se aplican a WebSocket.
Deja que el servidor envíe los pings
Para mantener vivas las conexiones inactivas a través de proxies, haz que el servidor envíe tramas ping; el navegador las responde automáticamente. Usa el envío periódico solo si tu protocolo espera un mensaje de aplicación.
Mantén los tokens fuera de los registros compartidos
Las direcciones suelen llevar tokens. La herramienta guarda la dirección y los mensajes solo en memoria, pero los registros exportados y las capturas de pantalla los incluyen: quita los secretos antes de compartir.

Preguntas frecuentes sobre el tester de WebSocket

¿Puedo probar ws://localhost o un servidor de la LAN desde esta página HTTPS?
Depende del navegador (a octubre de 2026). Chrome 147 y posteriores tratan las conexiones WebSocket a tu ordenador o a tu red local como acceso a la red local: la primera vez preguntan si permitir este sitio y, cuando eliges Permitir, se conectan ws://localhost, ws://127.0.0.1 y ws:// a una dirección IP de la LAN como 192.168.1.10. En Chrome, el servidor de la LAN debe escribirse como dirección IP; un nombre de host sin más (que no sea .local) se bloquea aunque se resuelva a tu red. Firefox se conecta a localhost directamente, pero bloquea ws:// a direcciones de la LAN. Safari bloquea ws:// a localhost y a la LAN desde páginas HTTPS. A wss:// no le afecta la regla de contenido mixto: los servidores públicos funcionan desde esta página en todos los navegadores siempre que el certificado sea de confianza; para localhost o direcciones de la LAN, Chrome también pide aquí primero el permiso de red local.
¿Por qué no puedo conectarme a ws://example.com desde esta página?
Esta página se sirve por HTTPS, y los navegadores bloquean una conexión ws:// sin cifrar a un host público desde una página HTTPS (contenido mixto). Chrome y Firefox la rechazan de inmediato con un SecurityError, que la herramienta informa. Usa la dirección wss:// del servidor. Los sitios públicos servidos por http simple no tienen esta regla, pero en Chrome reciente no pueden llegar en absoluto a localhost ni a tu LAN.
La conexión falló con el código 1006: ¿qué ha pasado?
1006 solo significa que la conexión terminó sin handshake de cierre. Cuando un handshake falla, el estándar WebSocket obliga al navegador a ocultar la causa a la página —un 401, un 404, un puerto rechazado, un error de certificado y un Origin rechazado se ven idénticos (Firefox notifica los errores de certificado como 1015)—, así que ningún tester web que se conecte directamente desde el navegador puede mostrarla. Pulsa F12 y abre la consola: Chrome y Edge muestran el estado HTTP que devolvió el servidor. La herramienta además distingue los fallos antes de abrirse la conexión de las caídas después de abierta, y enumera las causas habituales de cada caso.
¿Puedo añadir una cabecera Authorization u otra cabecera personalizada?
No. La API WebSocket del navegador no permite a las páginas web definir cabeceras de la petición; el navegador envía un conjunto fijo (que incluye Origin y las cookies del propio sitio del servidor). Alternativas habituales, según lo que admita tu servidor: un token en la URL, como wss://host/ws?token=…; un token pasado como subprotocolo (solo se permiten caracteres de tipo token, así que un JWT funciona pero un Base64 estándar con = o / no, y el servidor debe devolver el subprotocolo); o una cookie, que los navegadores solo envían de forma fiable al propio sitio de la página, así que desde esta página normalmente no llega a tu servidor. Herramientas como Postman pueden definir cabeceras porque no son navegadores.
¿Por qué funciona en Postman pero no aquí?
Postman y los clientes de línea de comandos pueden definir cualquier cabecera y normalmente no envían Origin. Un navegador no puede añadir una cabecera Authorization y siempre envía Origin: https://go-tools.org. Si el servidor necesita un token en una cabecera o comprueba el Origin, rechaza el handshake del navegador; permite el Origin o pasa el token de otra forma.
¿El heartbeat envía tramas ping de WebSocket?
No. Las páginas web no pueden enviar ni ver las tramas ping/pong del protocolo; cuando el servidor envía un ping, el navegador responde con un pong por sí solo. El envío periódico de esta herramienta envía un mensaje de texto normal, como {"type":"ping"}, con el intervalo que configures. Está desactivado por defecto porque un servidor que no espera ese mensaje puede cerrar la conexión. Para mantener viva una conexión inactiva a través de un proxy, haz que el servidor envíe pings.
¿Por qué no puedo conectarme a mi servidor Socket.IO?
Socket.IO es un protocolo sobre WebSocket, no WebSocket puro. Un servidor Socket.IO v3/v4 espera la ruta /socket.io/?EIO=4&transport=websocket, envía un paquete de apertura que empieza por 0, espera 40 para unirse al namespace por defecto y cierra la conexión si cada ping 2 no recibe un pong 3. Elige el preajuste Socket.IO y la herramienta hace todo esto; luego envía los eventos como 42["event","data"]. Los servidores configurados solo para long-polling HTTP no aceptan ningún WebSocket.
Mi conexión se cae al cabo de un minuto más o menos: ¿por qué?
Normalmente es un tiempo de espera por inactividad en un proxy inverso. Nginx cierra por defecto una conexión proxificada cuando no pasan datos durante 60 segundos (proxy_read_timeout), y la página ve el código 1006. Aumenta ese tiempo de espera o haz que el servidor envíe tramas ping. Detrás de Nginx, asegúrate también de que el proxy reenvía el upgrade con proxy_set_header Upgrade $http_upgrade; y proxy_set_header Connection "upgrade"; (antes de Nginx 1.29.7, también proxy_http_version 1.1;).
¿Cómo me conecto a un servidor wss:// con un certificado autofirmado?
Abre https://el-mismo-host:puerto/ en una pestaña nueva, acepta el aviso del certificado y vuelve para conectarte. El navegador recuerda la excepción para ese host y ese puerto. Hazlo solo con tus propios servidores de prueba, porque reduce la protección del navegador.
¿Cómo envío y leo mensajes binarios?
Elige HEX o Base64 como formato de envío. HEX acepta 48 69 00 FF, 0x48,0x69 o 486900FF; la vista previa muestra los bytes, y los caracteres no válidos o una cantidad impar de dígitos se señalan con su posición en lugar de enviarse. Los mensajes binarios recibidos se muestran en HEX, 16 bytes por línea, y la barra de herramientas del registro los cambia a Base64. Para leer como texto el HEX recibido, pégalo en Hexadecimal a texto.
¿Mis mensajes pasan por los servidores de go-tools?
No. Tu navegador se conecta directamente a la dirección que introduces, y los mensajes no pasan por nuestros servidores. Además, la herramienta no abre ninguna conexión WebSocket hasta que pulsas Conectar, y guarda la dirección y los mensajes solo en memoria, no en la URL de la página ni en el almacenamiento del navegador. Como el resto del sitio, esta página carga scripts de analítica y publicidad.
¿Hay algún servidor contra el que pueda probar?
Usa el eco local: se ejecuta dentro de esta página, devuelve todo lo que envías y no abre ninguna conexión de red. También existen servicios de eco públicos como wss://echo.websocket.org/, pero son de terceros: su disponibilidad no está garantizada y tus mensajes llegan a ese tercero.

Herramientas relacionadas

Ver todas las herramientas →

Generador y constructor de comandos cURL

Web & API

Construye comandos curl en tu navegador: define método, cabeceras, autenticación y cuerpo, y obtén el comando listo para copiar al instante. Presets para Bearer, POST JSON y subida de archivos. Gratis, privado, sin registro.

Generador htpasswd — bcrypt, Apache MD5 (apr1) y Basic Auth

Web & API

Genera entradas htpasswd con bcrypt, Apache MD5 (apr1), SHA-1 y más. Obtén configuración lista para pegar en Apache, nginx y Docker. 100% en tu navegador — sin subidas.

Generador de etiquetas meta y Open Graph

Web & API

Genera etiquetas meta Open Graph, Twitter Card y SEO con vista previa en vivo de Google, Facebook y X. 100% gratis, en el navegador, sin registro — copia y pega el código.

Probador de nginx location — por qué gana ese bloque

Web & API

Qué bloque location de nginx gana — y por qué perdieron los demás. Probador gratuito para =, ^~, ~ y ~*, todo en tu navegador.

Terminal serial online (monitor serie en el navegador)

Web & API

Monitor serie en Chrome o Edge sin instalar nada: conecta CH340, CP2102, ESP32 o Arduino, envía texto o HEX, también periódicamente, con CRC-16 Modbus automático. ¿Caracteres extraños? Detecta GBK y redibuja lo ya recibido.

Calculadora de Subredes IPv4

Web & API

Calcula dirección de red, broadcast, rango de hosts utilizables, máscara de subred y comodín de cualquier bloque CIDR IPv4. Admite enlaces punto a punto /31 (RFC 3021), divide bloques en subredes y todo corre en tu navegador.