Delphi WebSocket Servidor

TsgcWebSocketHTTPServer — componente servidor WebSocket y HTTP multihilo con soporte IOCP/EPOLL, SSL/TLS, autenticación y servicio de archivos estáticos.

TsgcWebSocketHTTPServer

Servidor HTTP + WebSocket — atiende handshakes wss://, difunde mensajes y trae TLS integrado, autenticación, registro en balanceador de carga y HTTP/2.

Clase del componente

TsgcWebSocketHTTPServer

Protocolo

WebSocket — RFC 6455

Plataformas

Windows, macOS, Linux, iOS, Android

Edición

Professional / Enterprise

Coloca el componente, ajusta unas propiedades y listo

Coloca un TsgcWebSocketHTTPServer, configura Port y SSL, cablea OnMessage y el servidor está en marcha.

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;

Qué hay dentro

27 propiedades publicadas, 7 métodos, 22 eventos — tomados de la referencia del componente.

Conexión

Propiedades publicadas: Active, Port, Bindings.

Mensajería

Métodos: Broadcast, WriteData, Ping.

Fiabilidad

Propiedades publicadas: HeartBeat, WatchDog, LoadBalancer.

Seguridad

Propiedades publicadas: Authentication, SSL, SSLOptions.

Ciclo de vida

Eventos: OnStartup, OnShutdown, OnTCPConnect.

Datos

Eventos: OnMessage, OnBinary, OnFragmented.

Especificaciones y referencias

Fuentes autorizadas para los protocolos que implementa este componente.

Documentación y demos

Accede directamente a la referencia del componente, descarga el proyecto demo listo para ejecutar y descarga la prueba.

Ayuda en línea — TsgcWebSocketServer Referencia completa de propiedades, métodos y eventos de este componente.
Proyecto demo — 01.WebSocket\02.Server Proyecto de ejemplo listo para ejecutar. Se incluye en el paquete sgcWebSockets — descarga la prueba más abajo.
Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi, C++ Builder y .NET y referencias de fuentes primarias — solo este componente.
Manual de usuario (PDF) Manual completo que cubre todos los componentes de la librería.

¿Listo para crear tu servidor?

Descarga la prueba gratuita y crea un servidor WebSocket de alto rendimiento en minutos.