Wat zijn WebSockets?
WebSocket is een webtechnologie die bidirectionele, full-duplex communicatiekanalen biedt over één TCP-socket, gestandaardiseerd door de IETF als RFC 6455.
WebSocket is een webtechnologie die bidirectionele, full-duplex communicatiekanalen biedt over één TCP-socket, gestandaardiseerd door de IETF als RFC 6455.
WebSocket maakt persistente, tweezijdige communicatie mogelijk tussen browsers en servers zonder constante polling.
Traditionele HTTP volgt een request/response-patroon waarin de client elke uitwisseling moet initiëren. WebSocket waardeert een HTTP-verbinding op tot een persistent, full-duplex kanaal waarin zowel client als server op elk moment data kunnen versturen. Dat elimineert de overhead van steeds opnieuw uitgevoerde HTTP-handshakes en maakt echte realtime interactie mogelijk, zoals live feeds, online games, samenwerkend bewerken en beursnoteringen.
Een WebSocket-verbinding begint als een HTTP-upgrade-request en gaat daarna over op een persistent binair frameprotocol.
De client stuurt een HTTP GET-request met de headers Upgrade: websocket en Connection: Upgrade, samen met een random Sec-WebSocket-Key.
De server reageert met HTTP 101 Switching Protocols en bevestigt de upgrade. De TCP-verbinding is nu een WebSocket-kanaal.
Beide kanten kunnen vrij tekst- of binaire frames versturen met slechts 2 bytes overhead. De verbinding blijft open totdat een van beide kanten hem sluit.
Verbind met een WebSocket-server en wissel berichten uit in slechts een paar regels code.
uses
sgcWebSocket_Client, sgcWebSocket_Types;
var
WSClient: TsgcWebSocketClient;
procedure TForm1.FormCreate(Sender: TObject);
begin
WSClient := TsgcWebSocketClient.Create(nil);
WSClient.Host := 'echo.websocket.org';
WSClient.Port := 443;
WSClient.TLS := True;
WSClient.OnMessage := OnMessage;
WSClient.Active := True;
end;
procedure TForm1.OnMessage(Connection: TsgcWSConnection;
const aText: string);
begin
// Handle incoming messages
Memo1.Lines.Add('Received: ' + aText);
end;
procedure TForm1.ButtonSendClick(Sender: TObject);
begin
// Send a text message to the server
WSClient.WriteData('Hello, WebSocket!');
end;