Che cos'è SockJS?

SockJS è una libreria JavaScript open-source che fornisce un'API simile a WebSocket con fallback trasparente a trasporti alternativi quando WebSocket non è disponibile. È stata progettata per ambienti in cui le connessioni WebSocket sono bloccate — ad esempio, da firewall aziendali, browser più vecchi o load balancer che non supportano gli upgrade di connessione. SockJS negozia automaticamente il miglior trasporto disponibile, scegliendo tra WebSocket, HTTP streaming, HTTP long-polling e diversi altri meccanismi.

SockJS richiede una libreria compatibile lato server (come SockJS-Node o il supporto SockJS di Spring) e utilizza il proprio sottoprotocollo, quindi non può connettersi a un endpoint WebSocket semplice.

Descrizione dello strumento

Questo strumento fornisce un client SockJS basato su browser. Inserisci l'URL di un endpoint server SockJS, connettiti, componi messaggi di testo e osserva tutto il traffico in un registro messaggi con timestamp. Il nome del trasporto attivo (ad es. websocket, xhr-streaming, xhr-polling) viene visualizzato in tempo reale in modo da poter vedere quale meccanismo di fallback la libreria ha selezionato.

Funzionalità

  • Negoziazione automatica del trasporto — si connette con il miglior trasporto disponibile e mostra quale è stato selezionato.
  • Registro messaggi in tempo reale — tutti i messaggi in arrivo e gli eventi di connessione vengono acquisiti con timestamp per una facile ispezione.
  • Modalità testo e JSON — scrivi i payload come testo semplice o JSON strutturato con evidenziazione della sintassi e convalida.

Opzioni spiegate

URL del server — l'URL HTTP(S) dell'endpoint SockJS (ad es. https://example.com/sockjs). Non aggiungere /websocket o alcun suffisso di trasporto; SockJS gestisce internamente la negoziazione del percorso.

Trasporto — visualizzato nell'area di output dopo l'apertura della connessione. I valori comuni includono websocket (upgrade diretto riuscito), xhr-streaming (streaming su XHR) e xhr-polling (long-poll tradizionale). Questo campo rimane vuoto finché la connessione non è stabilita.

Tipo di dati — passa tra le modalità di composizione Testo e JSON. La modalità JSON convalida il payload prima dell'invio.

Scorrimento automatico — mantiene il registro messaggi ancorato alla voce più recente.

Come funziona

Il client utilizza la libreria JavaScript SockJS per aprire una connessione al server di destinazione. SockJS esegue una richiesta di informazioni al server per scoprire quali trasporti sono supportati, quindi negozia l'opzione migliore. Una volta connesso, lo strumento inoltra tutti i messaggi in uscita attraverso il metodo SockJS send e registra ogni evento onmessage restituito dal server.

Suggerimenti

  • I server SockJS in genere espongono il loro endpoint in un percorso come /sockjs o /ws. Consulta la documentazione del server per l'URL di base corretto.
  • Se il trasporto mostra xhr-polling invece di websocket, il server o il proxy potrebbe stare bloccando gli upgrade WebSocket.
  • SockJS non è compatibile con endpoint WebSocket semplici. Utilizza il Client di Test WebSocket per i server WebSocket standard.