Vai al contenuto

Banco di prova WebSocket

WebSocket Tester

Apre una connessione WebSocket, invia i frame che componi e registra tutto quello che arriva, con i tempi.

Apre un WebSocket dal browser verso un server indicato, manda quello che si scrive e registra ogni frame nelle due direzioni con i tempi. La connessione è quella del browser stesso: non passa niente dal nostro server, quindi un endpoint di sviluppo sulla propria macchina funziona come uno pubblico.

🔒 Funziona interamente nel tuo browserwebsockettestrealtimedebug

La connessione la stabilisce il tuo browser. Né l’indirizzo né quello che viene inviato o ricevuto passa dal nostro server.

Questa pagina è servita in https, quindi il browser blocca ws:// in chiaro come contenuto misto. Usa wss://, oppure apri il tuo server di sviluppo su http locale.

Separati da virgole. Vengono proposti nell’header Sec-WebSocket-Protocol e il server ne sceglie uno.

Un browser può inviare solo 1000 oppure 3000–4999 (RFC 6455 §7.4).

Inattivo

Invia

Registro

I frame ricevuti sono ▼, quelli inviati ▲. I tempi sono contati dalla prima voce.

Ancora niente.

  • L’API WebSocket del browser non può inviare da sé frame ping o pong, né allegare header propri. Dove serve autenticarsi, la convenzione è un token nel primo messaggio, nella query dell’URL, oppure come sottoprotocollo.

Come si usa

  1. Inserire un indirizzo wss://

    Questa pagina è servita in https, quindi il browser blocca il ws:// in chiaro come contenuto misto. Accanto si può offrire un sottoprotocollo; il server ne sceglie uno e il registro dice quale.

  2. Mandare un frame

    Il JSON valido viene compattato su una riga prima dell’invio, così un messaggio incollato con l’indentazione esce come lo manderebbe un client. Tutto ciò che non è JSON esce come è stato scritto.

  3. Leggere il registro per direzione e per tempo

    I frame ricevuti sono ▼, quelli inviati ▲, gli eventi ●, e ciascuno porta il tempo trascorso dalla prima voce. È così che si distingue un server che non ha mai risposto da uno che ha risposto piano.

  4. Chiudere con un codice quando serve

    Un browser può inviare solo 1000 o 3000–4999 (RFC 6455 §7.4), quindi l’intervallo definito dall’applicazione è dove stanno i codici propri. Il codice di chiusura che torna indietro viene scritto a parole.

Domande frequenti

Posso aggiungere un’intestazione Authorization?

Da un browser no: l’API WebSocket non ammette nessuna intestazione personalizzata. Le convenzioni sono un token nel primo messaggio, nella query dell’URL, oppure infilato come sottoprotocollo; quale usare lo decide il server.

Si è chiuso con 1006 e nessuna motivazione

1006 vuol dire che la connessione è caduta senza un frame di chiusura: il server è andato in crash, un proxy è andato in timeout, oppure l’handshake è stato rifiutato. I browser trattengono di proposito il motivo per ragioni di sicurezza, quindi la risposta sta nel registro del server, non qui.

Posso mandare un frame di ping?

No. I browser rispondono ai ping da soli e non danno alla pagina nessun modo di mandarne uno. Le applicazioni a cui serve un battito mandano un messaggio ordinario e contano sulla risposta del server.

Il mio traffico passa dal vostro server?

No. Il browser si collega direttamente, quindi l’indirizzo e ogni frame restano tra chi prova e quel server. Vuol dire anche che qui un endpoint su localhost funziona, cosa che un tester lato server non potrebbe mai raggiungere.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.