2012-01-02 12 views
18

¿Tiene socket.io un modo de depuración del lado del cliente donde puede ver literalmente todo lo que el servidor le ha enviado?¿Depuración del cliente de Socket.io?

Ahora conseguir el mismo efecto con el siguiente código:

socket.on('HELLO', function(arg1, arg2) { console.log('HELLO', arg1, arg2) ... 
socket.on('WORLD', function(arg1) { console.log('WORLD', arg1) ... 

que sería muy conveniente si puedo hacer esto fácilmente sin poner console.log todas partes.

Respuesta

7

Se puede ver fácilmente en el inspector de la web de un navegador WebKit (Chrome, Safari, cromo) Para hacer esto

  • clic derecho en la página
  • Ir a Inspeccionar elemento
  • Haga clic en la pestaña de red
  • Vuelva a cargar la página con la pestaña de red abierta.
  • Puede ver todos los recursos con la solicitud de obtención HTTP y la carga de sus respuestas.
  • Encuentra la primera solicitud al servidor socket.io.
  • Esto le devolverá una lista de los transportes de mensajes disponibles.
  • El cliente de Socket.io recogerá el primer transporte disponible. (Websockets si es compatible con su navegador)
  • Ahora, en la segunda solicitud, verá que todas las respuestas vuelven a aparecer en la pestaña "marcos".

Reference image for web inspector

2

Desde la versión 1.0 de Socket.io puede establecer la propiedad "depuración" en su localStorage a "*". Luego obtendrá todos los registros del cliente. Incluso puede filtrar, porque usa https://github.com/visionmedia/debug debajo del capó. Está todo muy bien documentado aquí: http://socket.io/docs/logging-and-debugging/

+2

documentación no es tan agradable. Si solo quiere ver esas líneas con nuevos datos provenientes del socket, configure el indicador de depuración en "socket.io-client: socket". Espero que esto pueda ayudar como ejemplo de filtros (mencionados en docs sin ejemplo). –

14

pega este a la consola, haga clic en entrar y actualizar la página:

localStorage.debug = '*'; 

Para obtener únicamente la información de depuración con datos entrantes de la toma, pegue esto en su lugar:

localStorage.debug = 'socket.io-client:socket'; 
Cuestiones relacionadas