Existe-t-il un moyen, ou une extension, qui me permet de surveiller le "trafic" passant par un WebSocket? Pour des raisons de débogage, j'aimerais voir les requêtes/réponses du client et du serveur.
Les outils de développement de Google Chrome permettent désormais de répertorier les images WebSocket et d'inspecter les données si les images ne sont pas binaires.
Processus:
Si votre connexion WebSocket utilise des cadres binaires, vous voudrez probablement quand même utiliser Wireshark pour déboguer la connexion. Wireshark 1.8. ajout du dissecteur et du filtrage pour WebSockets. Une alternative peut être trouvée dans ceci autre réponse .
Chrome Canary et Chromium disposent désormais de la fonction d'inspection du bloc de messages WebSocket. Voici les étapes pour le tester rapidement:
Remarque : chaque fois que vous envoyez ou recevez de nouveaux messages, vous devez actualiser le panneau principal en cliquant sur l'entrée echo.websocket.org à gauche.
J'ai aussi posté le étapes avec captures d'écran et vidéo .
Mon livre récemment publié, Guide définitif de HTML5 WebSocket , comporte également une annexe dédiée aux différents outils de contrôle, notamment ChromeDev Tools, Chromenet- les internes, et le requin de fil.
Ils semblent changer continuellement de contenu dans Chrome, mais voici ce qui fonctionne pour le moment :-)
D'abord, vous devez cliquer sur le bouton rouge d'enregistrement ou vous ne recevrez rien.
Je n'avais jamais remarqué le WS
auparavant, mais il filtre les connexions de socket Web.
Sélectionnez-le et vous pouvez voir les cadres qui vont vous montrer des messages d'erreur, etc.
Les autres réponses couvrent le scénario le plus courant: regardez le contenu des cadres (Outils de développement -> onglet Réseau -> cliquez avec le bouton droit de la souris sur la connexion websocket -> cadres).
Si vous voulez en savoir plus, comme par exemple, quels sockets sont ouverts/inactifs ou si vous pouvez les fermer, vous trouverez cette adresse utile.
chrome://net-internals/#sockets
Si vous n'avez pas de page qui accède au websocket, vous pouvez ouvrir la console Chrome et taper votre JavaScript dans:
var webSocket = new WebSocket('ws://address:port');
webSocket.onmessage = function(data) { console.log(data); }
Cela ouvrira le socket Web afin que vous puissiez le voir dans l'onglet Réseau et dans la console.
Vous avez 3 options: Chrome (via les outils de développement -> onglet Réseau), Wireshark et Fiddler (via l'onglet Journal), mais ils sont tous très basiques. Si le volume de trafic est très élevé ou si chaque image est très volumineuse, il devient très difficile de les utiliser pour le débogage.
Vous pouvez toutefois utiliser Fiddler avec FiddlerScript pour inspecter le trafic WebSocket de la même manière que vous envisagez le trafic HTTP. Peu d'avantages de cette solution est que vous pouvez exploiter de nombreuses autres fonctionnalités de Fiddler, telles que plusieurs inspecteurs (HexView, JSON, SyntaxView), comparer des paquets, rechercher des paquets, etc.
Veuillez vous référer à mon article récemment écrit sur CodeProject, qui vous montre comment déboguer/inspecter le trafic WebSocket avec Fiddler (avec FiddlerScript). http://www.codeproject.com/Articles/718660/Debug-Inspect-WebSocket-traffic-with-Fiddler
Je ne fais que poster ceci car Chrome a beaucoup changé, et aucune des réponses n'était à jour.
Réponse courte pour Chrome Version 29 et supérieure:
Les outils de développement Chrome permettent de voir la demande d'établissement de liaison qui reste en attente pendant la connexion ouverte, mais vous ne pouvez pas voir le trafic à ma connaissance. Cependant, vous pouvez le renifler par exemple.
J'ai utilisé l'extension Chrome appelée Simple WebSocket Client v0.1. publiée par l'utilisateur hakobera. Son utilisation est très simple car elle permet d'ouvrir des websockets sur une URL donnée, d'envoyer des messages et de fermer la connexion de socket. C'est très minimaliste.