Serveur WebSocket Delphi

TsgcWebSocketHTTPServer — un composant serveur WebSocket et HTTP multithread avec prise en charge IOCP/EPOLL, SSL/TLS, authentification et service de fichiers statiques.

TsgcWebSocketHTTPServer

Serveur HTTP + WebSocket — sert les poignées de main wss://, diffuse des messages et embarque TLS, authentification, enregistrement auprès d'un équilibreur de charge et HTTP/2.

Classe du composant

TsgcWebSocketHTTPServer

Protocole

WebSocket — RFC 6455

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Professional / Enterprise

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

Dépose un TsgcWebSocketHTTPServer, définis Port et SSL, branche OnMessage et le serveur est en ligne.

uses
  sgcWebSocket, sgcWebSocket_Server, sgcWebSocket_Classes;

var
  WSServer: TsgcWebSocketHTTPServer;
begin
  WSServer := TsgcWebSocketHTTPServer.Create(nil);
  WSServer.Port := 80;

  WSServer.OnConnect       := WSServerConnect;
  WSServer.OnMessage       := WSServerMessage;
  WSServer.OnDisconnect    := WSServerDisconnect;
  WSServer.OnError         := WSServerError;
  WSServer.OnAuthentication := WSServerAuthentication;

  WSServer.Active := True;
end;

procedure TForm1.WSServerMessage(Connection: TsgcWSConnection;
  const Text: string);
begin
  // Broadcast to every connected client
  WSServer.WriteData(Text);
end;

procedure TForm1.WSServerAuthentication(Connection: TsgcWSConnection;
  aUser, aPassword: string; var Authenticated: Boolean);
begin
  Authenticated := (aUser = 'admin') and (aPassword = 's3cret');
end;
// uses: sgcWebSocket, sgcWebSocket_Server
TsgcWebSocketHTTPServer *WSServer = new TsgcWebSocketHTTPServer(this);
WSServer->Port = 80;

WSServer->OnConnect       = WSServerConnect;
WSServer->OnMessage       = WSServerMessage;
WSServer->OnDisconnect    = WSServerDisconnect;
WSServer->OnError         = WSServerError;
WSServer->OnAuthentication = WSServerAuthentication;

WSServer->Active = true;

void __fastcall TForm1::WSServerMessage(TsgcWSConnection *Connection,
    const UnicodeString Text)
{
  WSServer->WriteData(Text);
}
using esegece.sgcWebSockets;

var server = new TsgcWebSocketHTTPServer();
server.Port = 80;

server.OnConnect        += (conn) => Console.WriteLine("#connected: " + conn.IP);
server.OnMessage        += (conn, text) => server.WriteData(text);  // broadcast
server.OnDisconnect     += (conn, code) => Console.WriteLine("#disconnected: " + code);
server.OnAuthentication += (conn, user, pass, ref ok) => { ok = (user == "admin" && pass == "s3cret"); };

server.Active = true;

Ce qu'il contient

27 propriétés publiées, 7 méthodes, 22 événements — issus de la référence du composant.

Connexion

Propriétés publiées : Active, Port, Bindings.

Messagerie

Méthodes : Broadcast, WriteData, Ping.

Fiabilité

Propriétés publiées : HeartBeat, WatchDog, LoadBalancer.

Sécurité

Propriétés publiées : Authentication, SSL, SSLOptions.

Cycle de vie

Événements : OnStartup, OnShutdown, OnTCPConnect.

Données

Événements : OnMessage, OnBinary, OnFragmented.

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 — TsgcWebSocketServer Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — 01.WebSocket\02.Server 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 à bâtir ton serveur ?

Télécharge l'essai gratuit et crée un serveur WebSocket haute performance en quelques minutes.