Delphi WebSocket 服务器

TsgcWebSocketHTTPServer — 具有 IOCP/EPOLL 支持、SSL/TLS、身份验证和静态文件服务的多线程 WebSocket 和 HTTP 服务器组件。

TsgcWebSocketHTTPServer

HTTP + WebSocket 服务器——处理 wss:// 握手、广播消息,内置 TLS、身份验证、负载均衡器注册和 HTTP/2。

组件类

TsgcWebSocketHTTPServer

协议

WebSocket — RFC 6455

支持平台

Windows, macOS, Linux, iOS, Android

版本

Professional / Enterprise

Drop the component, set a few properties, go

Drop a TsgcWebSocketHTTPServer, set Port and SSL, wire OnMessage and the server is live.

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;

What's inside

27 published properties, 7 methods, 22 events — pulled from the component reference.

Connection

Published properties: Active, Port, Bindings.

Messaging

Methods: Broadcast, WriteData, Ping.

Reliability

Published properties: HeartBeat, WatchDog, LoadBalancer.

Security

Published properties: Authentication, SSL, SSLOptions.

Lifecycle

Events: OnStartup, OnShutdown, OnTCPConnect.

Data

Events: OnMessage, OnBinary, OnFragmented.

规范与参考

本组件实现协议的权威来源。

文档与演示

直接访问组件参考文档,获取即用型演示项目,并下载试用版。

在线帮助 — TsgcWebSocketServer 本组件的完整属性、方法和事件参考。
Demo Project — 01.WebSocket\02.Server 即用型示例项目,随 sgcWebSockets 包提供——请在下方下载试用版。
技术文档 (PDF) 本组件的功能介绍、快速入门、Delphi、C++ Builder 和 .NET 代码示例及主要来源参考。
用户手册 (PDF) 涵盖库中所有组件的综合手册。

Ready to Build Your Server?

Download the free trial and create a high-performance WebSocket server in minutes.