Wat is SockJS?

SockJS is een open-source JavaScript-bibliotheek die een WebSocket-achtige API biedt en transparant terugvalt op alternatieve transporten wanneer WebSocket niet beschikbaar is. Het is ontworpen voor omgevingen waar WebSocket-verbindingen worden geblokkeerd — bijvoorbeeld door bedrijfsfirewalls, oudere browsers of load balancers die geen verbindingsupgrades ondersteunen. SockJS onderhandelt automatisch over het beste beschikbare transport, kiezend uit WebSocket, HTTP-streaming, HTTP long-polling en verschillende andere mechanismen.

SockJS vereist een compatibele server-side bibliotheek (zoals SockJS-Node of Spring's SockJS-ondersteuning) en gebruikt zijn eigen subprotocol, dus het kan niet verbinding maken met een gewoon WebSocket-eindpunt.

Hulpprogrammabeschrijving

Dit hulpprogramma biedt een browsergebaseerde SockJS-client. Voer de URL van een SockJS-server-eindpunt in, maak verbinding, stel tekstberichten samen en bekijk al het verkeer in een voorzien van tijdstempel berichtenlogboek. De naam van het actieve transport (bijv. websocket, xhr-streaming, xhr-polling) wordt in real-time weergegeven, zodat u kunt zien welk fallback-mechanisme de bibliotheek heeft geselecteerd.

Functies

  • Automatische transportonderhandeling — maakt verbinding met het beste beschikbare transport en toont welke is geselecteerd.
  • Live berichtenlogboek — alle inkomende berichten en verbindingsgebeurtenissen worden vastgelegd met tijdstempels voor eenvoudige inspectie.
  • Tekst- en JSON-modi — schrijf payloads als platte tekst of gestructureerde JSON met syntaxismarkering en validatie.

Opties uitgelegd

Server-URL — de HTTP(S)-URL van het SockJS-eindpunt (bijv. https://example.com/sockjs). Voeg geen /websocket of ander transportsuffix toe; SockJS handelt padonderhandeling intern af.

Transport — weergegeven in het uitvoergebied nadat de verbinding is geopend. Veelvoorkomende waarden zijn websocket (directe upgrade geslaagd), xhr-streaming (streaming via XHR) en xhr-polling (traditionele long-poll). Dit veld blijft leeg totdat de verbinding tot stand is gebracht.

Gegevenstype — schakel tussen Tekst en JSON compositionsmodi. JSON-modus valideert de payload voordat deze wordt verzonden.

Automatisch schuiven — houdt het berichtenlogboek vastgepind aan de meest recente vermelding.

Hoe het werkt

De client gebruikt de SockJS JavaScript-bibliotheek om een verbinding met de doelserver tot stand te brengen. SockJS voert een informatieverzoek uit naar de server om te ontdekken welke transporten worden ondersteund, en onderhandelt vervolgens over de beste optie. Eenmaal verbonden, stuurt het hulpprogramma alle uitgaande berichten door via de SockJS send-methode en registreert elk onmessage-event dat door de server wordt geretourneerd.

Tips

  • SockJS-servers stellen hun eindpunt doorgaans beschikbaar op een pad zoals /sockjs of /ws. Raadpleeg de serverdocumentatie voor de juiste basis-URL.
  • Als het transport xhr-polling toont in plaats van websocket, kan de server of proxy WebSocket-upgrades blokkeren.
  • SockJS is niet compatibel met gewone WebSocket-eindpunten. Gebruik de WebSocket Test Client voor standaard WebSocket-servers.