Obsługiwane przez
Domyślnie sgcWebSocket używa WebSocket jako protokołu, ale w komponentach klienta i serwera można używać zwykłego protokołu TCP.
Klient Komponent
Wyłącz protokół WebSocket.
Client.Specifications.RFC6455 := False;
Komponent serwerowy
Obsłuż zdarzenie OnUnknownProtocol, ustaw Transport na trpTCP i zaakceptuj połączenie.
procedure OnUnknownProtocol(Connection: TsgcWSConnection; var Accept: Boolean);
begin
Connection.Transport := trpTCP;
Accept := True;
end;
Gdy klient łączy się z serwerem, połączenie to zostanie zdefiniowane jako TCP i będzie używać protokołu TCP zamiast WebSockets. Połączenia TCP nie rozróżniają wiadomości tekstowych i binarnych, więc wszystkie odebrane wiadomości są obsługiwane przez zdarzenie OnBinary.
Koniec wiadomości
Jeśli wiadomości są duże, mogą być czasami odbierane w fragmentach. Istnieje metoda wykrywania końca wiadomości poprzez określenie bajtów do wyszukania. Przykład: w protokole STOMP wszystkie wiadomości kończą się bajtami 0 i 10.
procedure OnWSClientConnect(Connection: TsgcWSConnection);
begin
Connection.TCPEndOfFrameScanBuffer := eofScanAllBytes;
Connection.AddTCPEndOfFrame(0);
Connection.AddTCPEndOfFrame(10);
end;