Compatible con
De forma predeterminada, sgcWebSocket usa WebSocket como protocolo, pero puede usar el protocolo TCP simple en los componentes de cliente y servidor.
Client Component
Deshabilitar el protocolo WebSocket.
Client.Specifications.RFC6455 := False;
Componente servidor
Gestione el evento OnUnknownProtocol y establezca Transport como trpTCP y acepte la conexión.
procedure OnUnknownProtocol(Connection: TsgcWSConnection; var Accept: Boolean);
begin
Connection.Transport := trpTCP;
Accept := True;
end;
Luego, cuando un cliente se conecta al servidor, esta conexión se definirá como TCP y usará el protocolo TCP simple en lugar de WebSockets. Las conexiones TCP simples no distinguen entre mensajes de texto y binarios, por lo que todos los mensajes recibidos son gestionados por el evento OnBinary.
Fin del mensaje
Si los mensajes son grandes, a veces pueden recibirse de forma fragmentada. Existe un método para detectar el final de un mensaje especificando qué bytes buscar. Ejemplo: en el protocolo STOMP, todos los mensajes terminan con los bytes 0 y 10.
procedure OnWSClientConnect(Connection: TsgcWSConnection);
begin
Connection.TCPEndOfFrameScanBuffer := eofScanAllBytes;
Connection.AddTCPEndOfFrame(0);
Connection.AddTCPEndOfFrame(10);
end;