Qu'est-ce que SockJS ?

SockJS est une bibliothèque JavaScript open-source qui fournit une API de type WebSocket tout en se repliant de manière transparente sur des transports alternatifs lorsque WebSocket n'est pas disponible. Elle a été conçue pour les environnements où les connexions WebSocket sont bloquées — par exemple, par des pare-feu d'entreprise, des navigateurs plus anciens ou des équilibreurs de charge qui ne supportent pas les mises à niveau de connexion. SockJS négocie automatiquement le meilleur transport disponible, en choisissant parmi WebSocket, HTTP streaming, HTTP long-polling et plusieurs autres mécanismes.

SockJS nécessite une bibliothèque compatible côté serveur (comme SockJS-Node ou le support SockJS de Spring) et utilise son propre sous-protocole, il ne peut donc pas se connecter à un endpoint WebSocket simple.

Description de l'outil

Cet outil fournit un client SockJS basé sur le navigateur. Entrez l'URL d'un endpoint serveur SockJS, connectez-vous, composez des messages texte et observez tout le trafic dans un journal des messages horodaté. Le nom du transport actif (par exemple, websocket, xhr-streaming, xhr-polling) s'affiche en temps réel pour que vous puissiez voir quel mécanisme de secours la bibliothèque a sélectionné.

Fonctionnalités

  • Négociation automatique du transport — se connecte avec le meilleur transport disponible et affiche celui qui a été sélectionné.
  • Journal des messages en direct — tous les messages entrants et les événements de connexion sont capturés avec des horodatages pour une inspection facile.
  • Modes texte et JSON — écrivez les charges utiles en texte brut ou en JSON structuré avec coloration syntaxique et validation.

Options expliquées

URL du serveur — l'URL HTTP(S) de l'endpoint SockJS (par exemple, https://example.com/sockjs). N'ajoutez pas /websocket ou tout suffixe de transport ; SockJS gère la négociation des chemins en interne.

Transport — affiché dans la zone de sortie après l'ouverture de la connexion. Les valeurs courantes incluent websocket (mise à niveau directe réussie), xhr-streaming (streaming sur XHR) et xhr-polling (long-poll traditionnel). Ce champ reste vide jusqu'à ce que la connexion soit établie.

Type de données — basculez entre les modes de composition Texte et JSON. Le mode JSON valide la charge utile avant l'envoi.

Défilement automatique — maintient le journal des messages épinglé à l'entrée la plus récente.

Comment ça marche

Le client utilise la bibliothèque JavaScript SockJS pour ouvrir une connexion au serveur cible. SockJS effectue une requête d'information au serveur pour découvrir quels transports sont supportés, puis négocie la meilleure option. Une fois connecté, l'outil relaye tous les messages sortants via la méthode SockJS send et enregistre chaque événement onmessage retourné par le serveur.

Conseils

  • Les serveurs SockJS exposent généralement leur endpoint à un chemin comme /sockjs ou /ws. Consultez la documentation du serveur pour l'URL de base correcte.
  • Si le transport affiche xhr-polling au lieu de websocket, le serveur ou le proxy peut bloquer les mises à niveau WebSocket.
  • SockJS n'est pas compatible avec les endpoints WebSocket simples. Utilisez le Client de Test WebSocket pour les serveurs WebSocket standard.