WebSocket nedir?
WebSocket, IETF tarafından RFC 6455 olarak standartlaştırılmış, tek bir TCP soketi üzerinden çift yönlü, tam çift yönlü iletişim kanalları sağlayan bir web teknolojisidir.
WebSocket, IETF tarafından RFC 6455 olarak standartlaştırılmış, tek bir TCP soketi üzerinden çift yönlü, tam çift yönlü iletişim kanalları sağlayan bir web teknolojisidir.
WebSocket, tarayıcılar ve sunucular arasında sürekli yoklama olmadan kalıcı, çift yönlü iletişim sağlar.
Geleneksel HTTP, istemcinin her alışverişi başlatması gereken bir istek-yanıt deseni izler. WebSocket, bir HTTP bağlantısını hem istemcinin hem de sunucunun istedikleri zaman veri gönderebildiği kalıcı, tam çift yönlü bir kanala yükseltir. Bu, tekrarlanan HTTP el sıkışmalarının ek yükünü ortadan kaldırır ve canlı akışlar, çevrimiçi oyunlar, işbirlikçi düzenleme ve finansal şeritler gibi gerçek zamanlı etkileşimleri mümkün kılar.
Bir WebSocket bağlantısı, bir HTTP yükseltme isteği olarak başlar ve ardından kalıcı bir ikili çerçeve protokolüne geçer.
İstemci, rastgele bir Sec-WebSocket-Key ile birlikte Upgrade: websocket ve Connection: Upgrade başlıklarını içeren bir HTTP GET isteği gönderir.
Sunucu, yükseltmeyi onaylayarak HTTP 101 Switching Protocols ile yanıt verir. TCP bağlantısı artık bir WebSocket kanalıdır.
Her iki taraf da minimum 2 baytlık ek yükle serbestçe metin veya ikili çerçeveler gönderir. Bağlantı, taraflardan biri kapatana kadar açık kalır.
Bir WebSocket sunucusuna bağlanın ve birkaç satır kodla mesaj alışverişi yapın.
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
// Gelen mesajları işle
Memo1.Lines.Add('Alındı: ' + aText);
end;
procedure TForm1.ButtonSendClick(Sender: TObject);
begin
// Sunucuya bir metin mesajı gönder
WSClient.WriteData('Hello, WebSocket!');
end;