Cliente Socket.IO

Conéctate a servidores Socket.IO desde Delphi/C++Builder. Habla el transporte Engine.IO más la capa de eventos/namespaces de Socket.IO con ACKs y rooms.

TsgcWSAPI_SocketIO

Cliente para el protocolo Socket.IO v3/v4 — transporte Engine.IO, namespaces, emisión/recepción de eventos, callbacks de ACK y adjuntos binarios.

Clase del componente

TsgcWSAPI_SocketIO

Plataformas

Windows, macOS, Linux, iOS, Android

Edición

Standard / Professional / Enterprise

Suéltalo, conecta, emite, escucha

Empareja con TsgcWebSocketClient apuntando a /socket.io/ con EIO=4&transport=websocket — el componente gestiona el handshake de Engine.IO y te permite Emit / Subscribe eventos.

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\"}");

Qué incluye

Implementa tanto la capa de transporte Engine.IO (ping/pong, upgrade) como la capa de mensajes Socket.IO (CONNECT, EVENT, ACK, DISCONNECT) sobre un único TsgcWebSocketClient.

Transporte Engine.IO

Gestiona el handshake EIO=4, la cadencia ping/pong de 25 segundos y la ruta de upgrade del protocolo. El componente negocia automáticamente la codificación del payload (texto o binario).

Namespaces

Connect(namespace) abre namespaces adicionales sobre el mismo transporte. Emit(namespace, event, args) apunta al namespace elegido; OnSocketIOEvent informa del namespace originario por cada evento.

ACKs de eventos

Pasa un callback a Emit con un identificador de ACK — cuando el servidor responde, el componente dispara OnSocketIOAck con el id correspondiente y los argumentos JSON.

Adjuntos binarios

Socket.IO v4 soporta payloads binarios intercalados. El componente preserva los placeholders y expone cada adjunto como un stream junto al envoltorio JSON.

Reconexión

Engancha el WatchDog del TsgcWebSocketClient subyacente para reconexión automática — al reabrir, el componente vuelve a enviar los paquetes CONNECT de cada namespace activo.

Rooms (lado servidor)

Las rooms de Socket.IO son un concepto del servidor; el componente participa emitiendo eventos join / leave según el contrato de rooms que defina tu servidor.

Especificaciones y referencias

Fuentes oficiales del protocolo que este componente implementa.

Documentación y Demos

Enlace directo a la referencia del componente, descarga el proyecto demo listo para ejecutar y consigue la prueba gratuita.

Ayuda en línea — API_SocketIO Referencia completa de propiedades, métodos y eventos de este componente.
Prueba gratuita — sgcWebSockets Descarga el paquete de prueba y conéctate a servidores Socket.IO desde Delphi.
Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias a fuentes primarias Features, quick start, code samples for Delphi & C++ Builder and primary-source references — this component only.mdash; solo de este componente.
Manual de usuario (PDF) Manual completo que cubre todos los componentes de la librería.

¿Listo para hablar con un servidor Socket.IO?

Descarga la prueba gratuita e integra Socket.IO en tus aplicaciones Delphi.