Czym jest SockJS?

SockJS to biblioteka JavaScript o otwartym kodzie źródłowym, która zapewnia interfejs podobny do WebSocket z przezroczystym powrotem do alternatywnych transportów, gdy WebSocket jest niedostępny. Została zaprojektowana dla środowisk, w których połączenia WebSocket są blokowane — na przykład przez firmowe zapory sieciowe, starsze przeglądarki lub moduły równoważenia obciążenia, które nie obsługują uaktualnień połączeń. SockJS automatycznie negocjuje najlepszy dostępny transport, wybierając spośród WebSocket, HTTP streaming, HTTP long-polling i kilku innych mechanizmów.

SockJS wymaga kompatybilnej biblioteki po stronie serwera (takiej jak SockJS-Node lub obsługa SockJS Spring) i używa własnego podprotokołu, dlatego nie może się połączyć ze zwykłym punktem końcowym WebSocket.

Opis narzędzia

To narzędzie udostępnia klienta SockJS oparty na przeglądarce. Wpisz adres URL punktu końcowego serwera SockJS, nawiąż połączenie, skomponuj wiadomości tekstowe i obserwuj cały ruch w dzienniku wiadomości z sygnaturami czasowymi. Nazwa aktywnego transportu (np. websocket, xhr-streaming, xhr-polling) jest wyświetlana w czasie rzeczywistym, dzięki czemu możesz zobaczyć, który mechanizm rezerwowy wybrała biblioteka.

Funkcje

  • Automatyczna negocjacja transportu — łączy się z najlepszym dostępnym transportem i pokazuje, który został wybrany.
  • Dziennik wiadomości na żywo — wszystkie przychodzące wiadomości i zdarzenia połączenia są przechwytywane z sygnaturami czasowymi w celu łatwej inspekcji.
  • Tryby tekstu i JSON — pisz ładunki jako zwykły tekst lub strukturalny JSON z wyróżnianiem składni i walidacją.

Wyjaśnienie opcji

Adres URL serwera — adres URL HTTP(S) punktu końcowego SockJS (np. https://example.com/sockjs). Nie dołączaj /websocket ani żadnego sufiksu transportu; SockJS obsługuje negocjację ścieżki wewnętrznie.

Transport — wyświetlany w obszarze wyjściowym po otwarciu połączenia. Typowe wartości to websocket (bezpośrednie uaktualnienie powiodło się), xhr-streaming (streaming przez XHR) i xhr-polling (tradycyjne long-polling). To pole pozostaje puste do czasu nawiązania połączenia.

Typ danych — przełączaj się między trybami komponowania Tekst i JSON. Tryb JSON waliduje ładunek przed wysłaniem.

Automatyczne przewijanie — utrzymuje dziennik wiadomości przypiętty do najnowszego wpisu.

Jak to działa

Klient używa biblioteki JavaScript SockJS do otwarcia połączenia z serwerem docelowym. SockJS wykonuje żądanie informacyjne do serwera w celu odkrycia, które transporty są obsługiwane, a następnie negocjuje najlepszą opcję. Po nawiązaniu połączenia narzędzie przekazuje wszystkie wychodzące wiadomości przez metodę SockJS send i rejestruje każde zdarzenie onmessage zwrócone przez serwer.

Porady

  • Serwery SockJS zazwyczaj udostępniają swój punkt końcowy na ścieżce takiej jak /sockjs lub /ws. Sprawdź dokumentację serwera, aby znaleźć prawidłowy podstawowy adres URL.
  • Jeśli transport pokazuje xhr-polling zamiast websocket, serwer lub proxy może blokować uaktualnienia WebSocket.
  • SockJS nie jest kompatybilny ze zwykłymi punktami końcowymi WebSocket. Użyj Klienta Testowego WebSocket dla standardowych serwerów WebSocket.