2010-10-13 14 views
31

Quiero controlar el tráfico de websocket (como para ver qué versión del protocolo utiliza el cliente/servidor) para fines de depuración. ¿Cómo voy a hacer esto? Wireshark parece tener un nivel demasiado bajo para tal tarea. Sugerencias?¿Cómo depurar websockets?

+0

Fwiw, las versiones actuales de Fiddler le mostrará WebSocket tráfico. – EricLaw

+1

Todo lo que necesitas es Chrome. Más detalles sobre este hilo: http://stackoverflow.com/questions/8952773/chrome-web-inspector-web-socket-debugging/10525328#10525328. –

+0

Publiqué detalles sobre el inicio de sesión de mensajes de WebSocket usando Chrome y Wireshark en: https://blogs.oracle.com/arungupta/entry/logging_websocket_frames_using_chrome –

Respuesta

22

Wireshark suena como lo que realmente quiere. Hay muy poco encuadre o estructura para WebSockets después del handshake (por lo que desea un nivel bajo) e incluso si lo hubiera, wireshark pronto (o ya) tendría la capacidad de analizarlo y mostrarle la estructura.

Personalmente, a menudo capturo con tcpdump y luego analizo los datos más tarde usando wireshark. Esto es especialmente bueno cuando no puede wireshark en el dispositivo donde desea capturar los datos (es decir, un servidor sin cabeza). Por ejemplo:

sudo tcpdump -w /tmp/capture_data -s 8192 port 8000 

Alternativamente, si usted tiene control sobre el servidor WebSockets (o poder) siempre se puede imprimir el envío y recepción de datos. Tenga en cuenta que dado que los marcos de websocket comienzan con '\ x00' querrán evitar la impresión ya que en muchos idiomas '\ x00' significa el final de la cadena.

4

Si está buscando los datos reales enviados y recibidos, los recientes Chrome Canary y Chromium tienen ahora la función de inspección de marcos de mensajes WebSocket. Encontrará detalles en this thread.

+1

Y ahora también funciona en Chrome simple ... –

+0

Esto no funciona para Binary Websocket Frames – ShaBANG

6

creo que se debe utilizar Wireshark

Pasos

  • Wireshark abierto
  • Ir a capturar y seguir el camino a seguir: Captura> Interfaces> iniciar la captura en su dispositivo apropiado.
  • Escribir reglas de filtro de tcp.dstport == your_websoket_port
  • Hit aplican
+0

Necesita Wireshark 1.6.5 o superior para ver los datos en los paquetes de WebSocket, consulte https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6843 – r3m0t