Pris en charge par
Par défaut, sgcWebSocket utilise WebSocket comme protocole, mais vous pouvez utiliser le protocole TCP simple dans les composants client et serveur.
Client Composant
Désactiver le protocole WebSocket.
Client.Specifications.RFC6455 := False;
Composant Serveur
Gérez l'événement OnUnknownProtocol et définissez Transport sur trpTCP puis acceptez la connexion.
procedure OnUnknownProtocol(Connection: TsgcWSConnection; var Accept: Boolean);
begin
Connection.Transport := trpTCP;
Accept := True;
end;
Ensuite, lorsqu'un client se connecte au serveur, cette connexion sera définie comme TCP et utilisera le protocole TCP brut au lieu de WebSockets. Les connexions TCP brutes ne distinguent pas les messages texte et binaires, donc tous les messages reçus sont gérés par l'événement OnBinary.
Fin du message
Si les messages sont volumineux, ils peuvent parfois être reçus de manière fragmentée. Il existe une méthode pour détecter la fin d'un message en spécifiant les octets à rechercher. Exemple : dans le protocole STOMP, tous les messages se terminent par les octets 0 et 10.
procedure OnWSClientConnect(Connection: TsgcWSConnection);
begin
Connection.TCPEndOfFrameScanBuffer := eofScanAllBytes;
Connection.AddTCPEndOfFrame(0);
Connection.AddTCPEndOfFrame(10);
end;