Costruire un server WebSocket in C++ Builder

· Componenti

TsgcWebSocketServer fa parte della suite sgcWebSockets e offre un componente di alto livello per creare server WebSocket in C++ Builder. Questa guida illustra come creare un server minimo che risponde automaticamente ai messaggi in arrivo. 

Crea il progetto VCL

  1. Apri C++ Builder e crea una nuova VCL Forms Application.
  2. Trascina un componente TsgcWebSocketServer sulla form (per impostazione predefinita si chiama sgcWSServer1).
  3. Facoltativamente, aggiungi un TMemo (MemoLog) per visualizzare l'attività.

Configura il server

Imposta il server nel gestore OnCreate della form: 

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

Rispondere ai messaggi in arrivo

Gestisci l'evento OnMessage per restituire al client il testo ricevuto: 

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 invia la risposta solo alla specifica connessione, mentre Broadcast invia il messaggio a tutti i client connessi. 

Esegui il server

Compila ed esegui l'applicazione. Qualsiasi client WebSocket che si connetta a ws://<your-host>:9001/ riceverà una risposta con il prefisso "Server received:" per ogni messaggio inviato.