Cómo capturar WebSocket y decodificar mensajes Protobuf
En este tutorial conseguirás lo siguiente:
- Descargar y configurar Proxyman para macOS
- Capturar tráfico WebSocket desde Google Chrome o apps de iOS
- ✅ Decodificar mensajes Protobuf del tráfico WebSocket con Proxyman
WebSocket es un protocolo muy popular para la comunicación en tiempo real entre clientes y servidores. Muchas aplicaciones modernas usan Protobuf (Protocol Buffers) para serializar datos sobre WebSocket, lo que mejora el rendimiento y reduce el tamaño de las cargas.
Esta guía muestra cómo capturar tráfico WebSocket y decodificar mensajes Protobuf con Proxyman macOS 6.5.0 o posterior.
1. Descarga y configura Proxyman macOS
Antes de empezar, descarga y configura Proxyman macOS.
- Abre la web de Proxyman y descarga la última versión de Proxyman macOS
- Proxyman macOS: compatible con macOS 12 o posterior
- Instala Proxyman macOS
- Abre Proxyman e instala el certificado en tu Mac. Puedes seguir las instrucciones en
Proxyman > Certificate Menu -> Install for macOS -> Follow the instruction - En la pestaña Automatic -> haz clic en "Install & Trust"
- Comprueba que aparece la marca verde en el certificado de Proxyman

2. Captura tráfico WebSocket
2.1 Desde Google Chrome (funciona sin configuración adicional)
Proxyman puede capturar tráfico WebSocket de Google Chrome sin ninguna configuración adicional.
- Asegúrate de que Proxyman está en ejecución
- Abre Google Chrome
- Ve a un sitio de pruebas de WebSocket, por ejemplo: https://echo.websocket.org/.ws
- En este momento verás que Proxyman captura el tráfico WebSocket ✅
- En el Response Panel, haz clic en "Enable SSL Proxying" si ves tráfico cifrado con SSL
- Recarga la página o vuelve a conectar el WebSocket, para que Proxyman pueda descifrar el tráfico WebSocket ✅
- Listo. Ya puedes ver los mensajes WebSocket en tiempo real.

El tráfico WebSocket aparecerá con un icono especial de WebSocket en la lista de flujos de Proxyman. Puedes ver los mensajes enviados y recibidos en la pestaña WebSocket.
2.2 Desde apps de iOS
Si tu app para iOS usa URLSessionWebSocketTask o bibliotecas WebSocket para iOS (por ejemplo, Starscream o SocketRocket), tienes que configurar el SOCKS Proxy para capturar el tráfico WebSocket.
Esto se debe a que URLSessionWebSocketTask no respeta el proxy HTTP del sistema de forma predeterminada.
Para obtener instrucciones detalladas sobre cómo capturar WebSocket desde apps de iOS, sigue nuestro tutorial específico: Cómo interceptar y depurar WebSocket desde simuladores o dispositivos iOS
Este es un resumen rápido:
- Activa SOCKS Proxy en Proxyman:
Tools->Proxy Settings->SOCKS Proxy settings->Enable - Anota el número de puerto (el predeterminado es
8889) - Configura tu app para iOS para que use el servidor SOCKS Proxy de Proxyman
3. Decodifica mensajes Protobuf
Requiere Proxyman macOS 6.5.0 o posterior. Actualiza Proxyman si usas una versión anterior.
Una vez capturado el tráfico WebSocket, puedes decodificar los mensajes Protobuf directamente en Proxyman.
3.1 Decodificar con Raw Mode (rápido y aproximado)
Raw Mode resulta útil cuando no tienes un archivo de definición Protobuf (.proto). Proxyman intentará decodificar los datos binarios y mostrar los campos.
- Selecciona un flujo WebSocket en Proxyman
- Busca el mensaje WebSocket que contiene datos Protobuf
- Haz clic con el botón derecho en el mensaje Protobuf ->
Protobuf->Decode - Selecciona
Raw Mode - Listo. Proxyman decodificará los datos y mostrará los campos Protobuf ✅


Raw Mode muestra los números de campo y los tipos inferidos. Sin un archivo .proto no habrá nombres de campo, pero aun así puedes inspeccionar la estructura de los datos.
3.2 Decodificar con Message Type (recomendado)
Si tienes un archivo descriptor de Protobuf (.desc), puedes decodificar los mensajes con nombres y tipos de campo correctos.
- Selecciona un flujo WebSocket en Proxyman
- Busca el mensaje WebSocket que contiene datos Protobuf
- Haz clic con el botón derecho en el mensaje Protobuf ->
Protobuf->Decode - Selecciona
Message Type - Elige el tipo de mensaje de tu archivo descriptor de Protobuf

Si no encuentras tu Message Type, asegúrate de importar tu archivo .desc a Proxyman haciendo clic en el botón "Import Schema".
Consulta esta documentación para ver cómo generar un archivo .desc a partir de tus archivos .proto: Cómo generar un archivo .desc a partir de tus archivos .proto
- Listo. Proxyman decodificará el mensaje con los nombres de campo correctos ✅

Para generar un archivo .desc a partir de tus archivos .proto, usa el compilador protoc:
protoc --descriptor_set_out=message.desc --include_imports your_message.proto
La opción --include_imports añade los tipos de mensaje que usan los archivos .proto importados. Sin ella, Proxyman puede no encontrar un tipo que aparece en tu esquema principal. Raw Mode sigue siendo útil cuando no tienes ningún esquema, pero sus tipos de campo son suposiciones; usa un descriptor cuando los nombres y los tipos exactos importen.
4. Problemas y soluciones
4.1 No veo el tráfico WebSocket de mi app para iOS
Solución: las bibliotecas WebSocket de iOS no respetan el proxy HTTP. Tienes que activar SOCKS Proxy en Proxyman y configurar tu app para usarlo. Consulta nuestro tutorial de depuración de WebSocket para ver las instrucciones detalladas.
4.2 La opción de decodificación Protobuf no está disponible
Solución: asegúrate de usar Proxyman macOS 6.5.0 o posterior. Puedes comprobar tu versión en Proxyman -> About Proxyman y actualizarla desde proxyman.com.
4.3 Raw Mode muestra tipos de campo incorrectos
Solución: Raw Mode usa heurísticas para inferir los tipos de campo. Para una decodificación precisa, usa Message Type con tu archivo descriptor de Protobuf.
4.4 Veo tráfico WebSocket, pero los mensajes están cifrados
Solución: asegúrate de que SSL Proxying está activado para el dominio. Haz clic con el botón derecho en el flujo -> Enable SSL Proxying y, después, vuelve a conectar el WebSocket.
5. Conclusión
En este tutorial hemos aprendido a:
- Capturar tráfico WebSocket desde Google Chrome y apps de iOS con Proxyman
- Decodificar mensajes Protobuf con Raw Mode (sin archivo .proto) o con Message Type (con archivo .proto)
Tutoriales relacionados que te pueden interesar:
- Cómo interceptar y depurar WebSocket desde simuladores o dispositivos iOS
- Cómo capturar HTTP/HTTPS desde iPhone con iOS 26
- Cómo capturar tráfico HTTPS desde el navegador Firefox
Proxyman es una app de alto rendimiento para macOS, Windows y Linux que permite a los desarrolladores capturar tráfico HTTP/HTTPS y WebSocket desde navegadores, dispositivos iOS, simuladores de iOS y dispositivos Android.
Descárgala en https://proxyman.com

