TCP-verbindingen

Supported by

 

TsgcWebSocketServer

TsgcWebSocketHTTPServer

TsgcWebSocketClient

 

Standaard gebruikt sgcWebSocket WebSocket als protocol, maar u kunt ook het gewone TCP-protocol gebruiken in client- en servercomponenten.

 

Client Component

WebSocket-protocol uitschakelen.


Client.Specifications.RFC6455 := False;
 

 

Servercomponent

Verwerk de gebeurtenis OnUnknownProtocol en stel Transport in als trpTCP en accepteer de verbinding.


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

 

Wanneer een client verbinding maakt met de server, wordt deze verbinding gedefinieerd als TCP en gebruikt het plain TCP-protocol in plaats van WebSockets. Plain TCP-verbindingen maken geen onderscheid tussen tekst- en binaire berichten, dus alle ontvangen berichten worden verwerkt door de OnBinary-gebeurtenis.

 

Einde van bericht

Als berichten groot zijn, kunnen ze soms gefragmenteerd worden ontvangen. Er is een methode om het einde van een bericht te detecteren door op te geven naar welke bytes moet worden gezocht. Voorbeeld: in het STOMP-protocol eindigen alle berichten met de bytes 0 en 10.


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