web-dev-qa-db-fra.com

Comment déboguer Websockets?

Je souhaite surveiller le trafic websocket (pour savoir quelle version du protocole utilisée par le client/serveur) à des fins de débogage Comment pourrais-je m'y prendre? Wireshark semble trop faible pour une telle tâche. Suggestions?

33
Bain Markev

Wireshark sonne comme ce que vous voulez réellement. Il y a très peu d'encadrement ou de structure pour WebSockets après la poignée de main (donc vous voulez un niveau bas) et même s'il y en avait une ,owshark aurait bientôt (ou déjà) la possibilité de l'analyser et de vous montrer la structure.

Personnellement, je capture souvent avec tcpdump, puis j'analyse les données ultérieurement à l'aide de Wireshark. C’est particulièrement pratique lorsque vous ne pouvez pas effectuer de Wharshark sur le périphérique sur lequel vous souhaitez capturer les données (c’est-à-dire un serveur sans tête). Par exemple:

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

Sinon, si vous avez le contrôle sur le serveur WebSockets (ou le proxy), vous pouvez toujours imprimer les données d'envoi et de réception. Notez que, puisque les cadres websocket commencent par '\ x00', vous voudrez éviter toute impression puisque, dans de nombreuses langues, '\ x00' signifie la fin de la chaîne.

27
kanaka

Si vous recherchez les données réelles envoyées et reçues, les récents Chrome Canary et Chromium disposent désormais de la fonction d'inspection du bloc de messages WebSocket. Vous trouvez des détails dans ce fil de discussion .

7
Peter Moskovits

Je pense que vous devriez utiliser Wireshark

Pas 

  • Fils ouverts
  • Accédez à la capture et suivez le chemin ci-dessous: capture> interfaces> démarrez la capture dans votre périphérique approprié.
  • Écrire des règles dans le filtre tcp.dstport == your_websoket_port
  • Hit appliquer
6
Hitul Mistry