TsgcWebSocketProxyServer › 메서드 › WriteData
연결 GUID로 식별되는 프록시의 단일 WebSocket 클라이언트에 메시지를 보냅니다.
function WriteData(const aGuid, aMessage: string): Boolean;
| Name | Type | 설명 |
|---|---|---|
aGuid | const string | 클라이언트 핸드셰이크가 완료될 때 프록시가 할당한 대상 연결의 식별자입니다. |
aMessage | const string | WebSocket 텍스트 프레임으로 해당 클라이언트에 전달할 텍스트 페이로드입니다. |
주어진 GUID를 가진 연결이 발견되어 프레임이 해당 소켓에 전달되면 True, 일치하는 활성 연결이 없으면 False입니다. (Boolean)
이 오버로드는 GUID가 aGuid와 일치하는 WebSocket 연결을 조회하고 터널의 브라우저 측에서 해당 단일 클라이언트에 텍스트 메시지를 보냅니다. GUID는 TsgcWSConnection.Guid가 노출하는 값으로, 일반적으로 OnConnect에서 캡처되어 애플리케이션에 저장됩니다. 이 호출은 페어링된 업스트림 TCP 링크에 쓰지 않습니다. 백엔드 TCP 서버를 통해 바이트를 라우팅하지 않고 프록시에서 브라우저 클라이언트로 데이터를 푸시하는 데 사용하십시오. 한 번의 호출로 모든 활성 WebSocket 클라이언트에 도달하려면 Broadcast를 사용하십시오.
oServer.WriteData('guid', 'My First sgcWebSockets Message!.');
function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;
| Name | Type | 설명 |
|---|---|---|
aGuid | const String | 클라이언트 핸드셰이크가 완료될 때 프록시가 할당한 대상 연결의 식별자입니다. |
aStream | TStream | 내용이 WebSocket 바이너리 프레임으로 클라이언트에게 전송되는 소스 스트림입니다. 호출자가 스트림의 소유자로 유지됩니다. |
aSize | Integer | 선택적 조각 크기(바이트)입니다. 0보다 큰 경우 스트림이 이 크기의 여러 조각으로 분할됩니다. 전체 스트림을 단일 프레임으로 보내려면 0(기본값)을 사용하십시오. |
aStreaming | const TwsStreaming | 프래그먼트 전송을 위한 스트리밍 모드(stmNone, stmStart, stmContinue, stmFinish)입니다. 기본값은 stmNone으로, 완전한 독립 실행형 메시지를 보냅니다. |
지정된 GUID를 가진 연결이 위치하여 스트림이 해당 소켓에 전달된 경우 True이고, 일치하는 활성 연결이 없으면 False입니다. (Boolean)
이 오버로드는 제공된 스트림에서 읽은 바이너리 페이로드로 프록시의 브라우저 측에 있는 단일 WebSocket 클라이언트를 대상으로 합니다. 스트림은 현재 위치부터 소비되며 서버는 소유권을 가지지 않으므로, 호출자는 WriteData가 반환될 때까지 스트림을 살아 있게 유지해야 합니다. 이 GUID와 연결된 업스트림 TCP 연결에는 여기서 기록되지 않습니다. 바이트는 WebSocket 피어에만 전달됩니다. 여러 WebSocket 프레임에 걸쳐 조각화되어야 하는 매우 큰 페이로드를 전송할 때는 aSize를 aStreaming과 함께 사용하십시오.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;