Cliente de prueba WebSocket

Conéctese a un WebSocket, envíe mensajes y vea los mensajes enviados y recibidos, el estado de la conexión, el código de cierre del WebSocket y el motivo de cierre proporcionado por el servidor.

Ingrese una dirección ws:// o wss:// completa. La conexión comienza solo cuando selecciona Conectar.
Ingrese una dirección WebSocket para conectarse.Cerrar código
Envía un mensaje de texto. Presione Ctrl+Enter o Command+Enter para enviar.
Registro de mensajes
Enviado 0Recibido 0

Conéctese y envíe un mensaje para comenzar el registro.

Esta página no carga ni guarda nada en BroBroGo. Su dirección y mensajes van directamente desde su navegador al servidor WebSocket que elija.

Preguntas frecuentes

¿Qué datos de WebSocket puedo inspeccionar aquí?

Puede ver cada mensaje de texto o binario expuesto por su navegador, su dirección, hora y tamaño, además del código de cierre final, el motivo y el estado de cierre limpio. Las páginas del navegador no pueden exponer fragmentos a nivel de red ni marcos de control Ping y Pong.

¿Por qué falla una conexión incluso cuando la dirección funciona en otro lugar?

En una página segura, el navegador puede requerir wss://. El servidor también debe aceptar las conexiones del navegador y el origen de la página. Este cliente no puede agregar encabezados de protocolo de enlace personalizados, omitir errores de certificados ni anular las reglas de acceso del servidor.

¿Puedo realizar pruebas con datos de producción o confidenciales?

Utilice datos sintéticos siempre que sea posible. Elimine nombres, detalles de cuentas, registros legales, información financiera e información de salud antes de enviar. Los mensajes van al servidor que usted elija, cuyas reglas de registro y retención están fuera del control de esta página.

Introducción a WebSockets en la comunicación en tiempo real

El protocolo WebSocket, especificado en la RFC 6455, proporciona un canal de comunicación bidireccional y de dúplex completo a través de una única conexión TCP. A diferencia del modelo tradicional de petición y respuesta de HTTP, donde el cliente debe solicitar activamente cada actualización, WebSockets permite que tanto el cliente como el servidor envíen datos de forma independiente en cualquier momento.

Esta tecnología es fundamental para el desarrollo de API en tiempo real, sistemas de notificación, paneles de control financieros y herramientas de colaboración interactiva. Para los desarrolladores, ingenieros de integración, personal de control de calidad (QA) y equipos de operaciones (Ops), disponer de un mecanismo para conectarse manualmente a un punto de enlace (endpoint) público y enviar mensajes de prueba resulta indispensable para verificar el comportamiento del servidor.

Protocolos de conexión: diferencias entre ws:// y wss://

Al establecer una conexión mediante este cliente de prueba, es necesario definir el esquema de la dirección del servidor. Existen dos protocolos disponibles:

  • ws:// (WebSocket): Establece una conexión de texto plano sin cifrar. Es equivalente a HTTP y resulta útil para entornos de desarrollo local o pruebas controladas sin datos sensibles.
  • wss:// (WebSocket Secure): Establece una conexión cifrada mediante TLS/SSL sobre TCP. Es el equivalente a HTTPS y protege la integridad y confidencialidad de los datos transmitidos frente a interceptaciones de terceros.

El uso de un esquema u otro tiene implicaciones directas en la seguridad y en las reglas de acceso del navegador. Por ejemplo, si este cliente de prueba se ejecuta en una página web segura (bajo HTTPS), los navegadores modernos suelen bloquear por seguridad las conexiones salientes que utilicen el protocolo no cifrado ws:// debido a las políticas de contenido mixto.

Ciclo de vida y estados de una conexión WebSocket

La comunicación mediante WebSockets sigue un ciclo de vida estructurado que consta de varios eventos y estados de conexión:

  1. Establecimiento de la conexión (Handshake): El cliente inicia una solicitud de actualización de protocolo (Upgrade) desde HTTP a WebSocket. Durante este proceso, la herramienta muestra el estado "Conectando a ‹address›…".
  2. Conexión abierta: Si el servidor acepta la solicitud, se abre el canal bidireccional y se registra el evento "Conectado a ‹address›.". A partir de este momento, se incrementan los contadores de mensajes enviados y recibidos.
  3. Intercambio de datos: Cliente y servidor transmiten mensajes de texto o binarios de forma asíncrona.
  4. Cierre de la conexión: Cualquiera de las partes puede iniciar el cierre. Al finalizar, se genera un evento que detalla el código numérico de cierre, si el cierre fue limpio o no limpio, y el motivo específico proporcionado por el servidor.

Reglas de validación, límites y gestión de errores

Para garantizar la estabilidad del navegador y un comportamiento predecible durante las pruebas, el cliente aplica reglas estrictas de validación y límites operativos:

  • Validación de dirección: La dirección introducida debe ser un formato completo de hasta 2.048 caracteres. Si no se cumple, se muestra "Ingrese una dirección WebSocket completa, como wss://example.com/socket". Si se utiliza un protocolo distinto a los admitidos, se muestra "Utilice una dirección ws:// o wss://". Si se supera el límite de longitud, aparece "Esa dirección es inusualmente larga. Mantenlo bajo los caracteres 2,048".
  • Límites de mensajes: Los mensajes de texto individuales que se envían al servidor pueden tener un tamaño máximo de 100.000 caracteres. Si se excede este límite, la herramienta muestra "Ese mensaje es inusualmente grande. Mantenlo bajo los caracteres 100,000". Si se intenta enviar un mensaje sin haber establecido una conexión activa, se muestra "Conéctate antes de enviar un mensaje".
  • Tiempos de espera (Timeout): Si el servidor de destino no responde abriendo la conexión en un intervalo de 10 segundos, el proceso se interrumpe y se muestra el mensaje "El servidor no abrió la conexión en segundos 10".
  • Errores de conexión: En caso de fallo general de red o rechazo, se muestra "La conexión falló. Verifique la dirección, el certificado, la disponibilidad del servidor y las reglas de acceso al navegador".

Interpretación del registro de mensajes y códigos de cierre

El registro de mensajes actúa como una bitácora cronológica de la sesión de pruebas. Cada entrada se clasifica visualmente para facilitar el diagnóstico:

  • Enviado: Identifica los mensajes de texto emitidos desde el cliente.
  • Recibido: Identifica las respuestas del servidor.
  • Evento: Registra cambios de estado de la conexión.
  • Texto: Indica que el contenido del mensaje es texto plano.
  • mensaje binario: Identifica transmisiones de datos binarios, mostrando su tamaño en bytes (por ejemplo, "mensaje binario" seguido de la cantidad de bytes).

Optimización del rendimiento del registro

Para evitar que el navegador se vuelva inestable o lento durante sesiones de depuración intensivas, el registro implementa dos mecanismos de recorte automático:

  1. Límite de entradas: El registro retiene un máximo de 500 entradas. Si se supera este número, se eliminan las más antiguas y se muestra el aviso "‹count› se eliminaron las entradas de registro anteriores para que esta página siga respondiendo.".
  2. Truncado de contenido: Las entradas individuales del registro muestran un máximo de 20,000 caracteres. Si un mensaje excede este tamaño, se trunca y se añade la advertencia "‹count› Más personajes están ocultos en esta vista previa.".

Códigos de cierre y motivos

Cuando la conexión finaliza, el cliente muestra el evento "Cerrado con código ‹code› (‹clean›). Razón: ‹reason›". El estado de cierre puede ser "limpio" (si el protocolo de enlace de cierre se completó correctamente a nivel TCP) o "no limpio". Si el servidor no detalla la causa del cierre, se muestra "No se proporcionó ninguna razón".

Limitaciones de la API de WebSocket en el navegador

Es importante comprender que este cliente de prueba se ejecuta dentro del entorno de seguridad y de la API estándar de WebSocket del navegador web. Debido a estas especificaciones técnicas, existen limitaciones que no se pueden eludir:

  • Sin cabeceras personalizadas: No es posible añadir encabezados HTTP personalizados (como Authorization o cookies personalizadas) durante el protocolo de enlace (handshake) inicial.
  • Sin control de fragmentación: No se pueden exponer ni manipular los fragmentos de datos a nivel de red.
  • Sin tramas de control Ping/Pong: Las tramas de control Ping y Pong, utilizadas para mantener activa la conexión (keep-alive), son gestionadas automáticamente por el navegador y el sistema operativo; la aplicación no puede visualizarlas ni enviarlas manualmente.
  • Reglas de acceso y certificados: El cliente no puede omitir errores de certificados SSL/TLS autofirmados ni anular las políticas de seguridad del navegador, como las restricciones de origen (CORS) impuestas por el servidor.

Privacidad y procesamiento de datos

La privacidad de los datos es un factor crítico al realizar pruebas de integración. El procesamiento de esta herramienta se realiza de la siguiente manera:

  • Procesamiento local: Todo el procesamiento de los mensajes y la gestión de la conexión ocurren directamente en el navegador del usuario.
  • Sin almacenamiento externo: Esta página no carga ni guarda nada en BroBroGo. La dirección del servidor y los mensajes transmitidos viajan directamente desde su navegador al servidor WebSocket que elija, sin intermediarios ni servidores proxy de terceros.

Preguntas frecuentes

¿Qué datos de WebSocket puedo inspeccionar aquí?
Puede ver cada mensaje de texto o binario expuesto por su navegador, su dirección, hora y tamaño, además del código de cierre final, el motivo y el estado de cierre limpio. Las páginas del navegador no pueden exponer fragmentos a nivel de red ni marcos de control Ping y Pong.

¿Por qué falla una conexión incluso cuando la dirección funciona en otro lugar?
En una página segura, el navegador puede requerir wss://. El servidor también debe aceptar las conexiones del navegador y el origen de la página. Este cliente no puede agregar encabezados de protocolo de enlace personalizados, omitir errores de certificados ni anular las reglas de acceso del servidor.

¿Puedo realizar pruebas con datos de producción o confidenciales?
Utilice datos sintéticos siempre que sea posible. Elimine nombres, detalles de cuentas, registros legales, información financiera e información de salud antes de enviar. Los mensajes van al servidor que usted elija, cuyas reglas de registro y retención están fuera del control de esta página.

¿El botón para borrar el registro cierra la conexión activa?
No. La opción de borrar el registro únicamente limpia las entradas mostradas en la pantalla para facilitar la lectura, pero no interrumpe la conexión WebSocket activa ni restablece los contadores de mensajes enviados y recibidos.