networking - real - websockets
Cómo depurar Websockets? (4)
Quiero monitorear el tráfico de websocket (como para ver qué versión del protocolo usa el cliente / servidor) con fines de depuración. ¿Cómo voy a hacer esto? Wireshark parece tener un nivel demasiado bajo para tal tarea. Sugerencias?
Creo que deberías usar Wireshark
Pasos
- Open wireshark
- Vaya a capturar y siga la siguiente ruta: capture> interfaces> start capture en su dispositivo apropiado.
- Escriba reglas en el filtro
tcp.dstport == your_websoket_port
- Presionar aplicar
Por simple cosa, wireshark es demasiado complejo, quería comprobar solo si la conexión puede establecerse o no. Siguiendo el plugin de Chrome "Simple Web-socket (link: https://chrome.google.com/webstore/detail/simple-websocket-client/pfdhoblngboilpfeibdedpjgfnlcodoo?hl=en )" funciona como un hechizo. Ver imagen.
Si está buscando los datos reales enviados y recibidos, los últimos Chrome Canary y Chromium tienen ahora la función de inspección de marcos de mensajes WebSocket. Encontrará detalles en este hilo .
Wireshark suena como lo que realmente quieres. 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 tiene control sobre el servidor (o proxy) WebSockets, siempre puede imprimir los datos de envío y recepción. 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.