TCP Bağlantıları

Tarafından desteklenir

 

TsgcWebSocketServer

TsgcWebSocketHTTPServer

TsgcWebSocketClient

 

Varsayılan olarak sgcWebSocket, protokol olarak WebSocket'i kullanır, ancak istemci ve sunucu bileşenlerinde düz TCP protokolünü kullanabilirsiniz.

 

Client Bileşeni

WebSocket protokolünü devre dışı bırakın.


Client.Specifications.RFC6455 := False;
 

 

Sunucu Bileşeni

OnUnknownProtocol olayını işleyin ve Transport'u trpTCP olarak ayarlayıp bağlantıyı kabul edin.


procedure OnUnknownProtocol(Connection: TsgcWSConnection;  var Accept: Boolean);
begin
  Connection.Transport := trpTCP;
  Accept := True;
end;

 

Ardından bir istemci sunucuya bağlandığında, bu bağlantı TCP olarak tanımlanır ve WebSocket'ler yerine düz TCP protokolünü kullanır. Düz TCP bağlantıları metin ve ikili mesajlar arasında ayrım yapmaz, bu nedenle alınan tüm mesajlar OnBinary olayı tarafından işlenir.

 

Mesaj Sonu

Mesajlar büyükse, bazen parçalanmış olarak alınabilirler. Hangi baytların aranacağını belirterek bir mesajın sonunu algılamak için bir yöntem vardır. Örnek: STOMP protokolünde, tüm mesajlar 0 ve 10 baytlarıyla biter.


procedure OnWSClientConnect(Connection: TsgcWSConnection);
begin
  Connection.TCPEndOfFrameScanBuffer := eofScanAllBytes;
  Connection.AddTCPEndOfFrame(0);
  Connection.AddTCPEndOfFrame(10);
end;