Gibt es eine Möglichkeit oder eine Erweiterung, mit der ich den "Datenverkehr" über ein WebSocket beobachten kann? Zum Debuggen möchte ich die Client / Server-Anforderungen / Antworten sehen.
Gibt es eine Möglichkeit oder eine Erweiterung, mit der ich den "Datenverkehr" über ein WebSocket beobachten kann? Zum Debuggen möchte ich die Client / Server-Anforderungen / Antworten sehen.
Antworten:
Chrome-Entwicklertools können jetzt WebSocket-Frames auflisten und die Daten auch dann überprüfen, wenn die Frames nicht binär sind.
Prozess:
Wenn Ihre WebSocket-Verbindung Binärframes verwendet, möchten Sie wahrscheinlich weiterhin Wireshark zum Debuggen der Verbindung verwenden. Wireshark 1.8.0 hat Dissektor- und Filterunterstützung für WebSockets hinzugefügt. Eine Alternative finden Sie in dieser anderen Antwort .
Chrome Canary und Chromium verfügen jetzt über die WebSocket-Funktion zur Überprüfung von Nachrichtenrahmen. Hier sind die Schritte, um es schnell zu testen:
Hinweis : Jedes Mal, wenn Sie neue Nachrichten senden oder empfangen, müssen Sie das Hauptfenster aktualisieren, indem Sie links auf den Eintrag echo.websocket.org klicken.
Ich habe die Schritte auch mit Screenshots und Videos gepostet .
Mein kürzlich veröffentlichtes Buch, The Definitive Guide to HTML5 WebSocket , enthält auch einen speziellen Anhang zu den verschiedenen Inspektionstools, einschließlich Chrome Dev Tools, Chrome Net-Internals und Wire Shark.
Sie scheinen ständig Dinge in Chrome zu ändern, aber hier ist, was gerade funktioniert :-)
Zuerst müssen Sie auf die rote Aufnahmetaste klicken, sonst erhalten Sie nichts.
Ich habe das noch nie bemerkt, WS
aber es filtert die Web-Socket-Verbindungen heraus.
Wählen Sie es aus und Sie können die Frames sehen, die Ihnen Fehlermeldungen usw. anzeigen.
Wenn Sie keine Seite haben, die auf den Websocket zugreift, können Sie die Chrome-Konsole öffnen und Ihr JavaScript eingeben:
var webSocket = new WebSocket('ws://address:port');
webSocket.onmessage = function(data) { console.log(data); }
Dadurch wird der Web-Socket geöffnet, sodass Sie ihn auf der Registerkarte "Netzwerk" und in der Konsole sehen können.
Die anderen Antworten beziehen sich auf das häufigste Szenario: Beobachten Sie den Inhalt der Frames (Entwicklertools -> Registerkarte Netzwerk -> Klicken Sie mit der rechten Maustaste auf die Websocket-Verbindung -> Frames).
Wenn Sie weitere Informationen benötigen, z. B. welche Sockets derzeit geöffnet / inaktiv sind oder diese schließen können, ist diese URL hilfreich
chrome://net-internals/#sockets
Sie haben drei Möglichkeiten: Chrome (über die Entwicklertools -> Registerkarte "Netzwerk"), Wireshark und Fiddler (über die Registerkarte "Protokoll"), die jedoch alle sehr einfach sind. Wenn Sie ein sehr hohes Verkehrsaufkommen haben oder jeder Frame sehr groß ist, wird es sehr schwierig, sie zum Debuggen zu verwenden.
Sie können jedoch Fiddler mit FiddlerScript verwenden, um den WebSocket-Verkehr auf dieselbe Weise zu untersuchen, wie Sie den HTTP-Verkehr erwarten. Einige Vorteile dieser Lösung bestehen darin, dass Sie viele andere Funktionen in Fiddler nutzen können, z. B. mehrere Inspektoren (HexView, JSON, SyntaxView), Pakete vergleichen und Pakete suchen usw.
Weitere Informationen finden Sie in meinem kürzlich verfassten Artikel zu CodeProject, in dem gezeigt wird, wie Sie den WebSocket-Verkehr mit Fiddler (mit FiddlerScript) debuggen / überprüfen. http://www.codeproject.com/Articles/718660/Debug-Inspect-WebSocket-traffic-with-Fiddler
Ich poste dies nur, da Chrome viele Änderungen vornimmt und keine der Antworten auf dem neuesten Stand war.
Kurze Antwort für Chrome Version 29 und höher:
Mit den Chrome-Entwicklertools können Sie Handshake-Anforderungen anzeigen, die während der geöffneten Verbindung noch ausstehen. Soweit ich weiß, können Sie jedoch keinen Datenverkehr sehen. Sie können es jedoch zum Beispiel schnüffeln .
Ich habe die Chrome-Erweiterung Simple WebSocket Client v0.1.3 verwendet , die vom Benutzer hakobera veröffentlicht wird. Es ist sehr einfach zu verwenden, da es das Öffnen von Websockets unter einer bestimmten URL, das Senden von Nachrichten und das Schließen der Socket-Verbindung ermöglicht. Es ist sehr minimalistisch.
Für ein Tool, das ich verwendet habe, schlage ich Firecamp vor. Es ist wie Postman, unterstützt aber auch Websockets und socket.io.