O que são WebSockets?
WebSocket é uma tecnologia web que oferece canais de comunicação bidirecionais e full-duplex sobre um único socket TCP, padronizada pela IETF como RFC 6455.
WebSocket é uma tecnologia web que oferece canais de comunicação bidirecionais e full-duplex sobre um único socket TCP, padronizada pela IETF como RFC 6455.
O WebSocket permite uma comunicação persistente e bidirecional entre navegadores e servidores, sem a necessidade de polling constante.
O HTTP tradicional segue um padrão de requisição e resposta em que o cliente precisa iniciar cada troca. O WebSocket converte uma conexão HTTP em um canal persistente e full-duplex, no qual cliente e servidor podem enviar dados a qualquer momento. Isso elimina a sobrecarga de handshakes HTTP repetidos e permite uma interatividade em tempo real de verdade.
Uma conexão WebSocket começa como uma requisição de upgrade HTTP e depois passa a um protocolo persistente de frames binários.
O cliente envia uma requisição HTTP GET com os cabeçalhos Upgrade: websocket e Connection: Upgrade, junto com um Sec-WebSocket-Key aleatório.
O servidor responde com HTTP 101 Switching Protocols, confirmando o upgrade. A conexão TCP passa a ser um canal WebSocket.
Ambos os lados enviam livremente frames de texto ou binários com uma sobrecarga mínima de 2 bytes. A conexão permanece aberta até que um dos lados a feche.
Conecte-se a um servidor WebSocket e troque mensagens com poucas linhas de código.
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;