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 件(コンポーネントリファレンスより)。

接続

Published properties: Active, Port, Bindings.

メッセージング

Methods: Broadcast, WriteData, Ping.

信頼性

Published properties: HeartBeat, WatchDog, LoadBalancer.

セキュリティ

Published properties: Authentication, SSL, SSLOptions.

ライフサイクル

Events: OnStartup, OnShutdown, OnTCPConnect.

データ

Events: OnMessage, OnBinary, OnFragmented.

仕様と参考資料

このコンポーネントが実装するプロトコルの一次資料です。

ドキュメントとデモ

コンポーネントリファレンスへのディープリンク、すぐに実行可能なデモプロジェクト、そして体験版のダウンロードはこちらです。

オンラインヘルプ — TsgcWebSocketServer 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — 01.WebSocket\02.Server すぐに実行可能なサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。下記より体験版をダウンロードしてください。
技術ドキュメント (PDF) 本コンポーネントのみを対象とした機能解説、クイックスタート、Delphi・C++ Builder・.NET のコードサンプル、一次資料への参照を収録しています。
ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した総合マニュアルです。

サーバーを構築する準備はできましたか?

体験版をダウンロードして、数分でハイパフォーマンス WebSocket サーバーを作成しましょう。