Cliente Socket.IO

Conecte-se a servidores Socket.IO a partir de Delphi/C++Builder. Fala o transporte Engine.IO mais a camada de eventos/namespaces do Socket.IO com ACKs e rooms.

TsgcWSAPI_SocketIO

Cliente para o protocolo Socket.IO v3/v4 — transporte Engine.IO, namespaces, emissão/recepção de eventos, callbacks ACK e anexos binários.

Classe do componente

TsgcWSAPI_SocketIO

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Standard / Professional / Enterprise

Solte, conecte, emita, escute

Combine com TsgcWebSocketClient apontando para /socket.io/ com EIO=4&transport=websocket — o componente cuida do handshake do Engine.IO e permite que você use Emit / Subscribe em 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\"}");

O que tem dentro

Implementa tanto a camada de transporte Engine.IO (ping/pong, upgrade) quanto a camada de mensagens Socket.IO (CONNECT, EVENT, ACK, DISCONNECT) em um único TsgcWebSocketClient.

Transporte Engine.IO

Cuida do handshake EIO=4, da cadência de ping/pong de 25 segundos e do caminho de upgrade do protocolo. O componente negocia a codificação do payload (texto ou binário) automaticamente.

Namespaces

Connect(namespace) abre namespaces adicionais sobre o mesmo transporte. Emit(namespace, event, args) direciona ao namespace escolhido; OnSocketIOEvent informa o namespace de origem por evento.

ACKs de eventos

Passe um callback para Emit com um identificador ACK — quando o servidor responder, o componente dispara OnSocketIOAck com o id correspondente e os argumentos JSON.

Anexos binários

O Socket.IO v4 suporta payloads binários intercalados. O componente preserva os placeholders e entrega cada anexo como um stream ao lado do envelope JSON.

Reconexão

Associe o WatchDog do TsgcWebSocketClient subjacente para reconexão automática — ao reabrir, o componente reenvia os pacotes CONNECT de cada namespace ativo.

Rooms (do lado do servidor)

Rooms do Socket.IO são um conceito do servidor; o componente participa emitindo eventos join / leave de acordo com o contrato de rooms que seu servidor definir.

Especificações e referências

Fontes oficiais para o protocolo que este componente implementa.

Documentação e demos

Acesse a referência do componente, baixe o projeto de demonstração pronto para executar e obtenha a versão de avaliação.

Ajuda online — API_SocketIO Referência completa de propriedades, métodos e eventos deste componente.
Avaliação gratuita — sgcWebSockets Baixe o pacote de avaliação e conecte-se a servidores Socket.IO a partir do Delphi.
Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi e C++ Builder e referências oficiais — apenas este componente.
Manual do usuário (PDF) Manual completo cobrindo cada componente da biblioteca.

Pronto para conversar com um servidor Socket.IO?

Baixe a avaliação gratuita e integre Socket.IO em suas aplicações Delphi.