TCP Connections

지원 대상

 

TsgcWebSocketServer

TsgcWebSocketHTTPServer

TsgcWebSocketClient

 

기본적으로 sgcWebSocket은 WebSocket을 프로토콜로 사용하지만, 클라이언트 및 서버 구성 요소에서 일반 TCP 프로토콜을 사용할 수 있습니다.

 

Client 구성 요소

WebSocket 프로토콜을 비활성화합니다.


Client.Specifications.RFC6455 := False;
 

 

Server Component

OnUnknownProtocol 이벤트를 처리하고 Transport를 trpTCP로 설정한 후 연결을 Accept하십시오.


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

 

그러면 클라이언트가 서버에 연결할 때, 이 연결은 TCP로 정의되며 WebSockets 대신 일반 TCP 프로토콜을 사용합니다. 일반 TCP 연결은 텍스트와 바이너리 메시지를 구분하지 않으므로, 수신되는 모든 메시지는 OnBinary 이벤트에 의해 처리됩니다.

 

End of Message

메시지가 큰 경우 때때로 조각화되어 수신될 수 있습니다. 어떤 바이트를 찾을지 지정하여 메시지의 끝을 감지하는 메서드가 있습니다. 예: STOMP 프로토콜에서 모든 메시지는 바이트 0과 10으로 끝납니다.


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