Jak debugować Websockets?

Chcę monitorować ruch websocket (np. sprawdzić, jakiej wersji protokołu używa klient / serwer) do celów debugowania. Jak miałbym to zrobić? Wireshark wydaje się zbyt niski poziom jak na takie zadanie. Sugestie?

Author: Bain Markev, 2010-10-13

4 answers

Wireshark brzmi jak to, czego właściwie chcesz. Jest bardzo mało ramek lub struktury do WebSockets po uścisku dłoni (więc chcesz niskiego poziomu) i nawet jeśli tak było, wireshark wkrótce (lub już) będzie miał możliwość parsowania go i pokazać strukturę.

Osobiście często przechwytywam za pomocą tcpdump, a następnie analizuję dane za pomocą wireshark. Jest to szczególnie miłe, gdy możesz nie być w stanie wireshark na urządzeniu, na którym chcesz przechwycić dane (np. serwer bez głów). Na przykład:

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

Alternatywnie, jeśli masz kontrolę nad serwerem WebSockets (lub proxy), zawsze możesz wydrukować dane wysyłania i odbierania. Zauważ, że ponieważ ramki websocket zaczynają się od '\x00' będą chciały uniknąć drukowania, ponieważ w wielu językach' \x00 ' oznacza koniec łańcucha.

 26
Author: kanaka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-22 15:43:08

Jeśli szukasz rzeczywistych danych wysyłanych i odbieranych, najnowsze Chrome Canary i Chromium mają teraz funkcję kontroli ramki wiadomości WebSocket. Szczegóły znajdziesz w w tym wątku .

 6
Author: Peter Moskovits,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:55

Myślę, że powinieneś użyć Wireshark

Kroki

  • Otwórz wireshark
  • przejdź do przechwytywania i podążaj ścieżką poniżej: przechwytywanie > interfejsy > rozpocznij przechwytywanie w odpowiednim urządzeniu.
  • Write rules in filter tcp.dstport == your_websoket_port
  • Hit zastosuj
 6
Author: Hitul Mistry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-29 15:40:31

Dla prostej rzeczy, wireshark jest zbyt skomplikowane, chciałem sprawdzić tylko, czy połączenie można ustanowić, czy nie. Following Chrome plugin "Simple Web-socket (link: https://chrome.google.com/webstore/detail/simple-websocket-client/pfdhoblngboilpfeibdedpjgfnlcodoo?hl=en)" praca jak urok. Patrz zdjęcie.

Https://lh3.googleusercontent.com/bEHoKg3ijfjaE8-RWTONDBZolc3tP2mLbyWanolCfLmpTHUyYPMSD5I4hKBfi81D2hVpVH_BfQ=w640-h400-e365

 0
Author: Shantu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-07 11:08:36