TsgcWebSocketClient › 메서드 › Connect
WebSocket 연결을 동기적으로 열고 핸드셰이크가 완료되거나 타임아웃이 경과할 때까지 호출자를 차단합니다.
function Connect(const aTimeout: Integer = 10000): Boolean; overload;
function Connect(out AError: string; const aTimeout: Integer = 10000): Boolean; overload;
| Name | Type | 설명 |
|---|---|---|
AError | out string | 메서드가 실패하면 연결 오류에 대한 설명을 반환하고, 성공하면 빈 문자열을 반환합니다. 같은 텍스트는 이후 LastError에서도 확인할 수 있습니다. |
aTimeout | const Integer | 연결이 활성화될 때까지 대기하는 최대 시간(밀리초)입니다. 기본값은 10000(10초)입니다. |
클라이언트가 연결되어 있고 WebSocket 핸드셰이크가 시간 초과 내에 완료된 경우 True이고, 그렇지 않으면 False입니다(Boolean).
Connect는 Active := True 설정의 차단(blocking) 방식 대응 메서드입니다. 내부적으로 Active를 설정한 다음 연결이 수립되거나 타임아웃이 만료될 때까지 내부 이벤트에서 대기합니다. 클라이언트가 이미 연결되어 있으면 메서드는 즉시 True를 반환합니다. 함수가 True를 반환하면 OnConnect를 기다리지 않고 곧바로 WriteData를 호출해도 안전합니다. 보조 스레드에서 연결하는 논블로킹 호출이 필요하면 Start를, 퓨처 방식 논블로킹 연결(Delphi 2010+)이 필요하면 ConnectTask를 사용하십시오.
out AError 매개변수가 있는 오버로드는 동일하게 동작하지만 실패한 시도의 원인을 추가로 반환하므로, 연결이 성공하지 못한 이유를 알기 위해 이벤트 핸들러가 필요하지 않습니다. LastError는 각 시도 전에 지워지며 이후 같은 텍스트를 보관합니다.
oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := '127.0.0.1';
oClient.Port := 80;
if oClient.Connect(5000) then
oClient.WriteData('Hello from client')
else
ShowMessage('Connection failed');