Construir un servidor WebSocket en C++Builder

· Componentes

TsgcWebSocketServer forma parte de la suite sgcWebSockets y proporciona un componente de alto nivel para crear servidores WebSocket en C++Builder. Esta guía recorre la creación de un servidor mínimo que responde automáticamente a los mensajes entrantes. 

Crear el proyecto VCL

  1. Abre C++Builder y crea una nueva VCL Forms Application.
  2. Coloca un componente TsgcWebSocketServer en el formulario (llamado sgcWSServer1 por defecto).
  3. Opcionalmente, añade un TMemo (MemoLog) para mostrar la actividad.

Configurar el servidor

Configura el servidor en el handler OnCreate del formulario: 

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

Responder a los mensajes entrantes

Gestiona el evento OnMessage para devolver el texto recibido al cliente: 

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 envía la respuesta solo a la conexión concreta, mientras que Broadcast envía el mensaje a todos los clientes conectados. 

Ejecutar el servidor

Compila y ejecuta la aplicación. Cualquier cliente WebSocket que se conecte a ws://<tu-host>:9001/ recibirá una respuesta con el prefijo "Server received:" por cada mensaje que envíe.