Client WebSocket Delphi — sgcWebSockets | eSeGeCe

Client WebSocket Delphi

TsgcWebSocketClient — un composant client WebSocket complet pour Delphi et C++ Builder avec SSL/TLS, prise en charge du proxy, compression des messages et reconnexion automatique.

TsgcWebSocketClient

Composant client WebSocket — se connecte à tout serveur WebSocket RFC 6455 et échange des messages texte et binaires.

Classe du composant

TsgcWebSocketClient

Protocole

WebSocket — RFC 6455

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Standard / Professional / Enterprise

Dépose le composant, configure quelques propriétés, c'est parti

Définis Host, Port et TLS, gère OnMessage, puis active la connexion. La poignée de main, le framing et le ping/pong sont gérés pour toi.

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

Ce qu'il contient

23 propriétés publiées, 22 méthodes et 16 événements — directement issus de la référence du composant.

Contrôle de connexion

Host, Port, URL, TLS, IPVersion et Active ouvrent une connexion synchrone ou asynchrone. Connect/Disconnect bloquent l'appelant, Start/Stop s'exécutent sur un thread de travail.

Keep-alive et reconnexion

HeartBeat envoie des trames ping WebSocket sur un minuteur ; WatchDog se reconnecte automatiquement après une coupure inattendue. OnBeforeHeartBeat et OnBeforeWatchDog te permettent de personnaliser chaque cycle.

TLS et proxy

TLSOptions sélectionne l'IOHandler (OpenSSL ou SChannel), la version TLS (1.0–1.3) et ALPN ; Proxy route la poignée de main via HTTP ou SOCKS ; Authentication gère les schémas Basic / Bearer / personnalisés.

API de messagerie

WriteData envoie une trame texte avec fragmentation optionnelle ; WriteAndWaitData bloque jusqu'à la réponse du pair ; Ping envoie une trame ping. OnMessage, OnBinary et OnFragmented livrent les données entrantes.

Compression et limitation

Extensions.PerMessage_Deflate négocie la compression RFC 7692 ; Throttle plafonne les bits par seconde dans chaque sens ; QueueOptions sérialise les écritures Text / Binary / Ping sur le thread de connexion.

Diagnostics

LogFile écrit sur disque le trafic brut entrant et sortant ; NotifyEvents sélectionne la manière dont les événements sont dispatchés vers le thread principal ; OnException, OnError et OnHandshake exposent les détails au niveau du protocole.

Client WebSocket WinHTTP

Un client alternatif, réservé à Windows, qui fait passer la connexion WebSocket par la pile WinHTTP du système d'exploitation plutôt que par les sockets Indy — même API WebSocket, aucune dépendance tierce à déployer.

Classe du composant

TsgcWSClient_WinHTTP — la même API de messagerie, les mêmes événements et le même contrôle de connexion que TsgcWebSocketClient, pour que ton code reste familier.

Pile HTTP du système

Utilise l'API native Windows WinHTTP pour la poignée de main et le framing, il n'y a donc aucune bibliothèque de sockets supplémentaire à livrer avec ton application.

TLS SChannel

Les connexions sécurisées sont gérées par Windows SChannel, le TLS fonctionne donc immédiatement sans empaqueter de DLL OpenSSL.

Proxy et auth du système

Respecte la configuration du proxy système Windows et intègre les schémas d'authentification Windows (Basic, NTLM, Negotiate).

Choisis TsgcWSClient_WinHTTP lorsque tu veux un déploiement purement Windows qui s'appuie sur les piles HTTP et TLS du système d'exploitation. Pour les cibles multiplateformes (macOS, Linux, iOS, Android), utilise le TsgcWebSocketClient standard ci-dessus.

Spécifications et références

Sources de référence pour les protocoles que ce composant implémente.

Documentation et démos

Lien direct vers la référence du composant, récupère le projet de démo prêt à l'emploi et télécharge l'essai.

Aide en ligne — TsgcWebSocketClient Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — 01.WebSocket\01.Client Projet d'exemple prêt à l'emploi. Livré avec le paquet sgcWebSockets — télécharge l'essai ci-dessous.
Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code pour Delphi, C++ Builder et .NET, et références de sources primaires — ce composant uniquement.
Manuel utilisateur (PDF) Manuel complet couvrant chaque composant de la bibliothèque.

Prêt à commencer ?

Télécharge l'essai gratuit et ajoute la prise en charge client WebSocket à ton application Delphi.