C'è un modo, o un'estensione, che mi permette di guardare il "traffico" che passa attraverso un WebSocket? Ai fini del debug, vorrei vedere le richieste / risposte del client e del server.
C'è un modo, o un'estensione, che mi permette di guardare il "traffico" che passa attraverso un WebSocket? Ai fini del debug, vorrei vedere le richieste / risposte del client e del server.
Risposte:
Gli strumenti per sviluppatori di Chrome ora hanno la possibilità di elencare i frame WebSocket e anche di ispezionare i dati se i frame non sono binari.
Processi:
Se la tua connessione WebSocket utilizza frame binari, probabilmente vorrai comunque utilizzare Wireshark per eseguire il debug della connessione. Wireshark 1.8.0 ha aggiunto il supporto per dissettori e filtri per WebSocket. Un'alternativa può essere trovata in questa altra risposta .
Chrome Canary e Chromium ora dispongono della funzione di ispezione della cornice dei messaggi WebSocket. Ecco i passaggi per testarlo rapidamente:
Nota : ogni volta che invii o ricevi nuovi messaggi, devi aggiornare il pannello principale facendo clic sulla voce echo.websocket.org a sinistra.
Ho anche pubblicato i passaggi con schermate e video .
Il mio libro recentemente pubblicato, The Definitive Guide to HTML5 WebSocket , ha anche un'appendice dedicata che copre i vari strumenti di ispezione, inclusi Chrome Dev Tools, Chrome net-internals e Wire Shark.
Sembrano cambiare continuamente roba in Chrome, ma ecco cosa funziona adesso :-)
Per prima cosa devi fare clic sul pulsante rosso di registrazione o non otterrai nulla.
Non ho mai notato WS
prima, ma filtra le connessioni socket web.
Selezionalo e poi puoi vedere i frame che ti mostreranno messaggi di errore ecc.
Se non hai una pagina che accede al WebSocket, puoi aprire la console di Chrome e digitare il tuo JavaScript in:
var webSocket = new WebSocket('ws://address:port');
webSocket.onmessage = function(data) { console.log(data); }
Questo aprirà il socket Web in modo da poterlo vedere nella scheda di rete e nella console.
Le altre risposte riguardano lo scenario più comune: guardare il contenuto dei frame (Strumenti per sviluppatori -> scheda Rete -> Fare clic con il tasto destro del mouse sul collegamento websocket -> frame).
Se vuoi sapere qualche informazione in più, come quali socket sono attualmente aperti / inattivi o essere in grado di chiuderli, troverai questo URL utile
chrome://net-internals/#sockets
Sono disponibili 3 opzioni: Chrome (tramite Strumenti per sviluppatori -> scheda Rete), Wireshark e Fiddler (tramite la scheda Registro), tuttavia sono tutti molto semplici. Se hai un volume di traffico molto elevato o ogni frame è molto grande, diventa molto difficile usarli per il debug.
È possibile tuttavia utilizzare Fiddler con FiddlerScript per ispezionare il traffico WebSocket nello stesso modo in cui si immette il traffico HTTP. Pochi vantaggi di questa soluzione sono che puoi sfruttare molte altre funzionalità di Fiddler, come ispettori multipli (HexView, JSON, SyntaxView), confrontare i pacchetti e trovare pacchetti, ecc.
Si prega di fare riferimento al mio articolo recentemente scritto su CodeProject, che mostra come eseguire il debug / ispezionare il traffico WebSocket con Fiddler (con FiddlerScript). http://www.codeproject.com/Articles/718660/Debug-Inspect-WebSocket-traffic-with-Fiddler
Sto pubblicando questo dato che Chrome cambia molto, e nessuna delle risposte era abbastanza aggiornata.
Risposta breve per Chrome versione 29 e successive:
Ho usato l'estensione di Chrome chiamata Simple WebSocket Client v0.1.3 pubblicata dall'utente hakobera. È molto semplice nel suo utilizzo in cui consente l'apertura di socket Web su un determinato URL, l'invio di messaggi e la chiusura della connessione socket. È molto minimalista.
Per quanto riguarda uno strumento che ho iniziato a utilizzare, suggerisco firecamp È come Postman, ma supporta anche websocket e socket.io.