Czym są WebSockety?
WebSocket to technologia webowa zapewniająca dwukierunkowe, pełnodupleksowe kanały komunikacji przez pojedyncze gniazdo TCP, ustandaryzowana przez IETF jako RFC 6455.
WebSocket to technologia webowa zapewniająca dwukierunkowe, pełnodupleksowe kanały komunikacji przez pojedyncze gniazdo TCP, ustandaryzowana przez IETF jako RFC 6455.
WebSocket umożliwia trwałą, dwukierunkową komunikację między przeglądarkami a serwerami bez ciągłego odpytywania.
Tradycyjny HTTP działa w modelu żądanie-odpowiedź, w którym klient musi zainicjować każdą wymianę. WebSocket zmienia połączenie HTTP w trwały, pełnodupleksowy kanał, w którym zarówno klient, jak i serwer mogą wysyłać dane w dowolnym momencie. Eliminuje to narzut powtarzanych uzgodnień HTTP i umożliwia prawdziwe interakcje w czasie rzeczywistym, takie jak kanały na żywo, gry online, współpraca nad dokumentami i notowania finansowe.
Połączenie WebSocket zaczyna się od żądania uaktualnienia HTTP, a następnie przechodzi do trwałego protokołu ramek binarnych.
Klient wysyła żądanie HTTP GET z nagłówkami Upgrade: websocket i Connection: Upgrade oraz losowym Sec-WebSocket-Key.
Serwer odpowiada kodem HTTP 101 Switching Protocols, potwierdzając uaktualnienie. Połączenie TCP jest teraz kanałem WebSocket.
Obie strony swobodnie wysyłają ramki tekstowe lub binarne z minimalnym narzutem 2 bajtów. Połączenie pozostaje otwarte, dopóki któraś ze stron go nie zamknie.
Połącz się z serwerem WebSocket i wymieniaj wiadomości za pomocą kilku linii kodu.
uses
sgcWebSocket_Client, sgcWebSocket_Types;
var
WSClient: TsgcWebSocketClient;
procedure TForm1.FormCreate(Sender: TObject);
begin
WSClient := TsgcWebSocketClient.Create(nil);
WSClient.Host := 'www.esegece.com';
WSClient.Port := 2053;
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;