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

컴포넌트 배치, 몇 가지 속성 설정, 실행

TsgcWebSocketHTTPServer를 배치하고 Port와 SSL을 설정한 다음 OnMessage를 연결하면 서버가 동작해요.

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;

내부 구성

게시된 속성 27개, 메서드 7개, 이벤트 22개 — 컴포넌트 레퍼런스에서 가져온 내용이에요.

연결

게시 속성: Active, Port, Bindings.

메시징

메서드: Broadcast, WriteData, Ping.

안정성

게시 속성: HeartBeat, WatchDog, LoadBalancer.

보안

게시 속성: Authentication, SSL, SSLOptions.

수명 주기

이벤트: OnStartup, OnShutdown, OnTCPConnect.

데이터

이벤트: OnMessage, OnBinary, OnFragmented.

사양 및 참고 자료

이 컴포넌트가 구현하는 프로토콜의 공식 출처.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 실행 가능한 데모 프로젝트를 받고, 체험판을 다운로드하세요.

온라인 도움말 — TsgcWebSocketServer 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스.
데모 프로젝트 — 01.WebSocket\02.Server 실행 가능한 예제 프로젝트. sgcWebSockets 패키지에 포함돼 있어요 — 아래에서 체험판을 다운로드하세요.
기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi, C++ Builder, .NET 코드 샘플, 1차 출처 참고 자료.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서.

서버를 빌드할 준비가 되셨나요?

무료 체험판을 다운로드해 몇 분 만에 고성능 WebSocket 서버를 만드세요.