TsgcWebSocketClient › 메서드 › WriteData
선택적으로 지정된 크기의 단편으로 분할하여 WebSocket 서버에 텍스트 메시지를 보냅니다.
procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Name | Type | 설명 |
|---|---|---|
aText | const String | WebSocket 텍스트 프레임으로 서버에 보낼 텍스트 페이로드입니다. |
aSize | const Integer | 선택적 프래그먼트 크기(바이트)입니다. 0보다 큰 경우 메시지가 이 크기의 여러 프래그먼트로 분할됩니다. 전체 메시지를 단일 프레임으로 보내려면 0(기본값)을 사용하십시오. |
aStreaming | const TwsStreaming | 프래그먼트 전송을 위한 스트리밍 모드(stmNone, stmStart, stmContinue, stmFinish)입니다. 기본값은 stmNone으로, 완전한 독립 실행형 메시지를 보냅니다. |
WriteData는 활성 연결에서 문자열을 WebSocket 텍스트 프레임으로 전송합니다. 기본적으로 호출은 호출 스레드에서 실행되며 바이트가 소켓에 전달되면 반환됩니다. QueueOptions.Text가 qmNone 이외의 값으로 설정되면, 메시지는 큐에 들어가고 실제로 연결 자체의 스레드에서 전송되어, 여러 스레드가 동시에 쓸 때 잠금을 방지합니다. 클라이언트가 연결되지 않은 경우 호출은 작동하지 않으며, 모든 소켓 예외는 OnError로 전달됩니다. 대용량 페이로드 또는 바이너리 데이터를 보낼 때는 스트림 오버로드를 사용하십시오.
oClient.WriteData('My First sgcWebSockets Message!.');
procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Name | Type | 설명 |
|---|---|---|
aStream | const TStream | 내용이 WebSocket 바이너리 프레임으로 전송될 소스 스트림입니다. 호출자는 스트림의 소유자로 남습니다. |
aSize | const Integer | 선택적 조각 크기(바이트)입니다. 0보다 큰 경우 스트림이 이 크기의 여러 조각으로 분할됩니다. 전체 스트림을 단일 프레임으로 보내려면 0(기본값)을 사용하십시오. |
aStreaming | const TwsStreaming | 프래그먼트 전송을 위한 스트리밍 모드(stmNone, stmStart, stmContinue, stmFinish)입니다. 기본값은 stmNone으로, 완전한 독립 실행형 메시지를 보냅니다. |
WriteData는 제공된 스트림을 현재 위치에서 읽어 그 내용을 WebSocket 바이너리 프레임으로 전송합니다. 호출은 기본적으로 호출 스레드에서 실행됩니다. QueueOptions.Binary가 qmNone 이외의 값으로 설정되면 메시지가 큐에 들어가 실제로 연결 스레드에서 디스패치됩니다. 클라이언트가 연결되지 않은 경우 이 메서드는 no-op이며, 소켓 예외는 포착되어 OnError로 전달됩니다. 호출이 반환된 후(또는 큐잉하는 경우 전송이 완료된 후)에만 스트림을 해제하십시오.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oClient.WriteData(oStream);
finally
oStream.Free;
end;