在 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:"的响应。