Budowa serwera WebSocket w C++ Builderze

· Komponenty

TsgcWebSocketServer jest częścią pakietu sgcWebSockets i udostępnia komponent wysokiego poziomu do tworzenia serwerów WebSocket w C++Builder. Ten przewodnik przeprowadza przez tworzenie minimalnego serwera, który automatycznie odpowiada na przychodzące wiadomości.

Tworzenie projektu VCL

  1. Otwórz C++Builder i utwórz nową VCL Forms Application.
  2. Upuść komponent TsgcWebSocketServer na formularzu (domyślnie nazwany sgcWSServer1).
  3. Opcjonalnie dodaj TMemo (MemoLog) do wyświetlania aktywności.

Konfiguracja serwera

Skonfiguruj serwer w handlerze OnCreate formularza:

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

Odpowiadanie na przychodzące wiadomości

Obsłuż zdarzenie OnMessage, aby odesłać odebrany tekst do klienta:

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 przesyła odpowiedź tylko do określonego połączenia, natomiast Broadcast wysyła wiadomość do każdego podłączonego klienta.

Uruchamianie serwera

Skompiluj i uruchom aplikację. Każdy klient WebSocket łączący się z ws://<your-host>:9001/ będzie otrzymywać odpowiedź z prefiksem "Server received:" dla każdej wysłanej wiadomości.