Criando um servidor WebSocket em C++Builder

· Componentes

TsgcWebSocketServer is part do sgcWebSockets suite e provides um high-level component para creating WebSocket servers em C++Builder. This guide walks through creating um minimal server that automaticamente replies para incoming messages. 

Criar o projeto VCL

  1. Abrir C++Builder e create um novo VCL Forms Application.
  2. Drop um TsgcWebSocketServer component no form (named sgcWSServer1 por padrão).
  3. Optionally adicionar um TMemo (MemoLog) para display activity.

Configurar o servidor

Set up o servidor no form's OnCreate handler: 

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

Responder às mensagens recebidas

Handle o OnMessage event para echo o received text back para o 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 transmits um resposta somente para o specific conexão, whereas Broadcast sends um mensagem para every connected client. 

Executar o servidor

Compile e run o application. Any cliente WebSocket that connects para ws://<your-host>:9001/ will receive um response prefixed com "Server received:" para every message it sends.