Existe uma maneira, ou uma extensão, que me permita assistir o "tráfego" passando por um WebSocket? Para fins de depuração, gostaria de ver as solicitações / respostas do cliente e do servidor.
Existe uma maneira, ou uma extensão, que me permita assistir o "tráfego" passando por um WebSocket? Para fins de depuração, gostaria de ver as solicitações / respostas do cliente e do servidor.
Respostas:
As ferramentas de desenvolvedor do Chrome agora podem listar quadros do WebSocket e também inspecionar os dados se os quadros não forem binários.
Processo:
Se sua conexão WebSocket usa quadros binários, provavelmente você ainda desejará usar o Wireshark para depurar a conexão. O Wireshark 1.8.0 adicionou suporte de dissecador e filtragem para WebSockets. Uma alternativa pode ser encontrada nesta outra resposta .
O Chrome Canary e o Chromium agora têm o recurso de inspeção de quadros de mensagens WebSocket. Aqui estão as etapas para testá-lo rapidamente:
Nota : Toda vez que você envia ou recebe novas mensagens, é necessário atualizar o painel principal clicando na entrada echo.websocket.org à esquerda.
Também publiquei as etapas com capturas de tela e vídeo .
Meu livro recentemente publicado, The Definitive Guide to HTML5 WebSocket , também possui um apêndice dedicado que cobre as várias ferramentas de inspeção, incluindo Chrome Dev Tools, Chrome net-internals e Wire Shark.
Eles parecem mudar continuamente as coisas no Chrome, mas eis o que funciona agora :-)
Primeiro você deve clicar no botão vermelho de gravação ou não receberá nada.
Eu nunca notei o WS
antes, mas filtra as conexões de soquete da web.
Selecione e, em seguida, você poderá ver os quadros que mostrarão mensagens de erro etc.
Se você não tiver uma página que esteja acessando o soquete da web, poderá abrir o console do Chrome e digitar seu JavaScript em:
var webSocket = new WebSocket('ws://address:port');
webSocket.onmessage = function(data) { console.log(data); }
Isso abrirá o soquete da web para que você possa vê-lo na guia rede e no console.
As outras respostas abrangem o cenário mais comum: observe o conteúdo dos quadros (Ferramentas do desenvolvedor -> guia Rede -> clique com o botão direito do mouse na conexão do websocket -> quadros).
Se você quiser saber mais informações, como quais soquetes estão atualmente abertos / ociosos ou poderá fechá-los, você encontrará este URL útil
chrome://net-internals/#sockets
Você tem três opções: Chrome (via Ferramentas do desenvolvedor -> guia Rede), Wireshark e Fiddler (via guia Log), no entanto, todas são muito básicas. Se você tem um volume muito alto de tráfego ou cada quadro é muito grande, fica muito difícil usá-los para depuração.
No entanto, você pode usar o Fiddler com o FiddlerScript para inspecionar o tráfego do WebSocket da mesma maneira que inspeciona o tráfego HTTP. Poucas vantagens dessa solução são que você pode aproveitar muitas outras funcionalidades do Fiddler, como vários inspetores (HexView, JSON, SyntaxView), comparar pacotes e encontrar pacotes etc.
Consulte o meu artigo escrito recentemente sobre o CodeProject, que mostra como depurar / inspecionar o tráfego do WebSocket com o Fiddler (com o FiddlerScript). http://www.codeproject.com/Articles/718660/Debug-Inspect-WebSocket-traffic-with-Fiddler
Resposta curta para a versão 29 e superior do Chrome:
As ferramentas de desenvolvedor do Chrome permitem ver a solicitação de handshake que permanece pendente durante a conexão aberta, mas você não pode ver o tráfego até onde eu sei. No entanto, você pode farejá-lo, por exemplo.
Eu usei a extensão do Chrome chamada Simple WebSocket Client v0.1.3, publicada pelo usuário hakobera. É muito simples em seu uso, onde permite abrir websockets em um determinado URL, enviar mensagens e fechar a conexão do soquete. É muito minimalista.