Klient Socket.IO

Łącz się z serwerami Socket.IO z Delphi/C++ Builder. Obsługuje transport Engine.IO oraz warstwę zdarzeń/namespace Socket.IO z ACK-ami i pokojami.

TsgcWSAPI_SocketIO

Klient dla protokołu Socket.IO v3/v4 — transport Engine.IO, namespace, emitowanie/odbieranie zdarzeń, callbacki ACK i załączniki binarne.

Klasa komponentu

TsgcWSAPI_SocketIO

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Standard / Professional / Enterprise

Upuść, połącz, emituj, nasłuchuj

Połącz z TsgcWebSocketClient skierowanym na /socket.io/ z EIO=4&transport=websocket — komponent obsługuje handshake Engine.IO i pozwala Emit / Subscribe zdarzeń.

uses
  sgcWebSocket, sgcWebSocket_API_SocketIO;

var
  WSClient: TsgcWebSocketClient;
  SIO: TsgcWSAPI_SocketIO;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  WSClient.URL := 'wss://server.example.com/socket.io/?EIO=4&transport=websocket';

  SIO := TsgcWSAPI_SocketIO.Create(nil);
  SIO.Client := WSClient;

  WSClient.Active := True;

  SIO.Emit('/', 'chat:message',
    '{"user":"alice","text":"hello"}');
end;
// uses: sgcWebSocket, sgcWebSocket_API_SocketIO
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
WSClient->URL = "wss://server.example.com/socket.io/?EIO=4&transport=websocket";

TsgcWSAPI_SocketIO *SIO = new TsgcWSAPI_SocketIO(this);
SIO->Client = WSClient;

WSClient->Active = true;
SIO->Emit("/", "chat:message",
  "{\"user\":\"alice\",\"text\":\"hello\"}");

Co jest w środku

Implementuje zarówno warstwę transportową Engine.IO (ping/pong, upgrade), jak i warstwę wiadomości Socket.IO (CONNECT, EVENT, ACK, DISCONNECT) na jednym TsgcWebSocketClient.

Transport Engine.IO

Obsługuje handshake EIO=4, rytm ping/pong co 25 sekund i ścieżkę upgrade protokołu. Komponent automatycznie negocjuje kodowanie ładunku (tekstowe lub binarne).

Namespace

Connect(namespace) otwiera dodatkowe namespace na tym samym transporcie. Emit(namespace, event, args) kieruje na wybrany namespace; OnSocketIOEvent raportuje namespace źródłowy każdego zdarzenia.

ACK-i zdarzeń

Przekaż do Emit callback z identyfikatorem ACK — gdy serwer odpowie, komponent wyzwala OnSocketIOAck z pasującym id i argumentami JSON.

Załączniki binarne

Socket.IO v4 obsługuje przeplatane ładunki binarne. Komponent zachowuje placeholdery i prezentuje każdy załącznik jako strumień obok koperty JSON.

Ponowne łączenie

Powiąż WatchDog bazowego TsgcWebSocketClient, aby automatycznie ponawiać połączenia — po ponownym otwarciu komponent wysyła ponownie pakiety CONNECT dla każdego aktywnego namespace.

Pokoje (po stronie serwera)

Pokoje Socket.IO są koncepcją serwerową; komponent uczestniczy, emitując zdarzenia join / leave zgodnie z kontraktem pokoju zdefiniowanym przez serwer.

Specyfikacje i źródła

Autorytatywne źródła protokołu implementowanego przez ten komponent.

Dokumentacja i dema

Bezpośredni link do dokumentacji komponentu, gotowy do uruchomienia projekt demo i pobieranie wersji próbnej.

Pomoc online — API_SocketIO Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Bezpłatna wersja próbna — sgcWebSockets Pobierz pakiet próbny i łącz się z serwerami Socket.IO z poziomu Delphi.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz źródła pierwotne — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy do komunikacji z serwerem Socket.IO?

Pobierz bezpłatną wersję próbną i zintegruj Socket.IO ze swoimi aplikacjami Delphi.