Supportato da
Per impostazione predefinita, sgcWebSocket utilizza WebSocket come protocollo, ma è possibile utilizzare il protocollo TCP semplice nei componenti client e server.
Client Componente
Disabilita il protocollo WebSocket.
Client.Specifications.RFC6455 := False;
Componente Server
Gestire l'evento OnUnknownProtocol e impostare Transport come trpTCP e accettare la connessione.
procedure OnUnknownProtocol(Connection: TsgcWSConnection; var Accept: Boolean);
begin
Connection.Transport := trpTCP;
Accept := True;
end;
Quando un client si connette al server, questa connessione verrà definita come TCP e utilizzerà il protocollo TCP semplice anziché WebSockets. Le connessioni TCP semplici non distinguono tra messaggi di testo e binari, quindi tutti i messaggi ricevuti vengono gestiti dall'evento OnBinary.
Fine del messaggio
Se i messaggi sono di grandi dimensioni, possono a volte essere ricevuti in modo frammentato. Esiste un metodo per rilevare la fine di un messaggio specificando quali byte cercare. Esempio: nel protocollo STOMP, tutti i messaggi terminano con i byte 0 e 10.
procedure OnWSClientConnect(Connection: TsgcWSConnection);
begin
Connection.TCPEndOfFrameScanBuffer := eofScanAllBytes;
Connection.AddTCPEndOfFrame(0);
Connection.AddTCPEndOfFrame(10);
end;