C++Builder で WebSocket サーバーを構築する

· コンポーネント

TsgcWebSocketServer は sgcWebSockets スイートの一部であり、C++Builder で WebSocket サーバーを作成するための高レベルコンポーネントを提供します。このガイドでは、受信メッセージに自動的に応答する最小限のサーバーを作成する手順を説明します。

VCL プロジェクトの作成

  1. C++Builder を開き、新しい VCL フォームアプリケーションを作成します。
  2. フォームに TsgcWebSocketServer コンポーネントをドロップします(デフォルト名は sgcWSServer1)。
  3. 必要に応じて TMemoMemoLog)を追加してアクティビティを表示します。

サーバーの設定

フォームの OnCreate ハンドラーでサーバーを設定します:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  sgcWSServer1->Port   = 9001;  // listen on port 9001
  sgcWSServer1->Active = true;  // start the server
} 

受信メッセージへの応答

OnMessage イベントを処理して、受信テキストをクライアントにエコーバックします:

void __fastcall TForm1::sgcWSServer1Message(TsgcWSConnection *Connection,
                                            const UnicodeString Text)
{
  Connection->WriteData("Server received: " + Text);  // reply only to sender
  // sgcWSServer1->Broadcast(Text); // alternative: send to all clients
  MemoLog->Lines->Add(Text);                           // optional logging
}

WriteData は特定の接続にのみレスポンスを送信しますが、Broadcast はすべての接続クライアントにメッセージを送信します。

サーバーの実行

アプリケーションをコンパイルして実行します。ws://<your-host>:9001/ に接続した WebSocket クライアントは、送信したすべてのメッセージに対して「Server received:」プレフィックスが付いたレスポンスを受け取ります。