Client WebSocket Delphi — sgcWebSockets | eSeGeCe

Delphi Client WebSocket

TsgcWebSocketClient — un componente client WebSocket completo per Delphi e C++ Builder con SSL/TLS, supporto proxy, compressione dei messaggi e riconnessione automatica.

TsgcWebSocketClient

Componente client WebSocket — si connette a qualsiasi server WebSocket RFC 6455 e scambia messaggi di testo e binari.

Classe del componente

TsgcWebSocketClient

Protocollo

WebSocket — RFC 6455

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Standard / Professional / Enterprise

Trascina il componente, imposta qualche proprietà, vai

Imposta Host, Port e TLS, gestisci OnMessage, poi attiva la connessione. L'handshake, il framing e il ping/pong sono gestiti per te.

uses
  sgcWebSocket_Client, sgcWebSocket_Classes;

var
  oClient: TsgcWebSocketClient;
begin
  oClient := TsgcWebSocketClient.Create(nil);
  oClient.Host := '127.0.0.1';
  oClient.Port := 80;
  oClient.TLS := True;
  oClient.Options.Parameters := '/ws/';

  oClient.OnConnect := OnConnect;
  oClient.OnMessage := OnMessage;
  oClient.OnDisconnect := OnDisconnect;

  oClient.Active := True;
end;

procedure TForm1.OnMessage(Connection: TsgcWSConnection;
  const Text: string);
begin
  Memo1.Lines.Add(Text);
end;

// Send a text frame
oClient.WriteData('hello');
// uses: sgcWebSocket_Client, sgcWebSocket_Classes
TsgcWebSocketClient *oClient = new TsgcWebSocketClient(this);
oClient->Host = "127.0.0.1";
oClient->Port = 80;
oClient->TLS = true;
oClient->Options->Parameters = "/ws/";

oClient->OnConnect = OnConnect;
oClient->OnMessage = OnMessage;
oClient->OnDisconnect = OnDisconnect;

oClient->Active = true;

void __fastcall TForm1::OnMessage(TsgcWSConnection *Connection,
    const UnicodeString Text)
{
  Memo1->Lines->Add(Text);
}

// Send a text frame
oClient->WriteData("hello");
using esegece.sgcWebSockets;

var client = new TsgcWebSocketClient();
client.Host = "127.0.0.1";
client.Port = 80;
client.TLS = true;
client.Options.Parameters = "/ws/";

client.OnConnect    += (conn) => Console.WriteLine("#connected: " + conn.IP);
client.OnDisconnect += (conn, code) => Console.WriteLine("#disconnected: " + code);
client.OnMessage    += (conn, text) => Console.WriteLine(text);

client.Active = true;

// Send a text frame
client.WriteData("hello");

Cosa c'è dentro

23 proprietà published, 22 metodi e 16 eventi — presi direttamente dal riferimento del componente.

Controllo della connessione

Host, Port, URL, TLS, IPVersion e Active aprono una connessione sincrona o asincrona. Connect/Disconnect bloccano il chiamante, Start/Stop girano su un worker thread.

Keep-alive e riconnessione

HeartBeat invia frame di ping WebSocket a tempo; WatchDog riconnette automaticamente dopo una caduta inattesa. OnBeforeHeartBeat e OnBeforeWatchDog ti permettono di personalizzare ogni ciclo.

TLS e proxy

TLSOptions seleziona l'IOHandler (OpenSSL o SChannel), la versione TLS (1.0–1.3) e ALPN; Proxy instrada l'handshake attraverso HTTP o SOCKS; Authentication gestisce schemi Basic / Bearer / personalizzati.

API di messaggistica

WriteData invia un frame di testo con frammentazione opzionale; WriteAndWaitData blocca finché il peer risponde; Ping invia un frame di ping. OnMessage, OnBinary e OnFragmented consegnano i dati in entrata.

Compressione e throttling

Extensions.PerMessage_Deflate negozia la compressione RFC 7692; Throttle limita i bit al secondo in entrambe le direzioni; QueueOptions serializza le scritture Text / Binary / Ping sul thread della connessione.

Diagnostica

LogFile scarica il traffico grezzo in ingresso e uscita su disco; NotifyEvents seleziona come gli eventi vengono inviati al thread principale; OnException, OnError e OnHandshake espongono i dettagli a livello di protocollo.

WebSocket WinHTTP Client

Un client alternativo, solo per Windows, che esegue la connessione WebSocket sullo stack WinHTTP del sistema operativo anziché sui socket Indy — stessa API WebSocket, nessuna dipendenza di terze parti da distribuire.

Classe del componente

TsgcWSClient_WinHTTP — la stessa API di messaggistica, gli stessi eventi e lo stesso controllo della connessione di TsgcWebSocketClient, così il tuo codice resta familiare.

Stack HTTP del sistema operativo

Usa l'API nativa di Windows WinHTTP per l'handshake e il framing, quindi non ci sono librerie socket aggiuntive da distribuire con la tua applicazione.

TLS SChannel

Le connessioni sicure sono gestite da SChannel di Windows, quindi il TLS funziona da subito senza includere le DLL di OpenSSL.

Proxy e autenticazione di sistema

Rispetta la configurazione del proxy di sistema di Windows e integra gli schemi di autenticazione di Windows (Basic, NTLM, Negotiate).

Scegli TsgcWSClient_WinHTTP quando vuoi una distribuzione esclusivamente per Windows che si basi sullo stack HTTP e TLS del sistema operativo. Per i target multipiattaforma (macOS, Linux, iOS, Android) usa il TsgcWebSocketClient standard descritto sopra.

Specifiche e riferimenti

Fonti autorevoli per i protocolli implementati da questo componente.

Documentazione e demo

Vai direttamente al riferimento del componente, prendi il progetto demo pronto all'uso e scarica la versione di prova.

Guida online — TsgcWebSocketClient Riferimento completo di proprietà, metodi ed eventi di questo componente.
Progetto demo — 01.WebSocket\01.Client Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi, C++ Builder e .NET e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre ogni componente della libreria.

Pronto per iniziare?

Scarica la versione di prova gratuita e aggiungi il supporto client WebSocket alla tua applicazione Delphi.