TsgcWebSocketClient | Client Open Connection

클라이언트가 서버에 연결하도록 구성되면 새 연결을 여는 3가지 다른 옵션이 있습니다.

 

Active 속성

새 연결을 여는 가장 쉬운 방법은 Active 속성을 true로 설정하는 것입니다. 이것은 구성 요소 구성을 사용하여 서버에 연결을 시도합니다.

Active 속성을 false로 설정하면 연결이 활성 상태인 경우 연결을 닫습니다.

이 메서드는 호출자와 동일한 스레드에서 실행됩니다. 따라서 Main Thread에서 호출하면 메서드는 애플리케이션의 Main Thread에서 실행됩니다.

 

Open Connection


oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Active := true;

Active = true를 호출할 때, 클라이언트가 아직 연결 중일 수 있으므로 여전히 서버로 데이터를 보낼 수 없습니다. 먼저 OnConnect 이벤트가 발생할 때까지 기다린 다음 서버로 메시지를 보내기 시작할 수 있습니다.

 

 

Close Connection


oClient.Active := false;

Active = false를 호출할 때, 이 코드 직후에 연결이 이미 닫혔는지 확신할 수 없으므로, OnDisconnect 이벤트가 발생할 때까지 기다려야 합니다.

 

 

Start/Stop 메서드

서버에 연결/연결 해제하기 위해 Start() 또는 Stop()을 호출하면, 호출은 보조 스레드에서 실행되므로 호출되는 스레드를 차단하지 않습니다. 서버에 연결하고 아래 코드를 계속 진행하려면 이 메서드를 사용하십시오.

 

Open Connection


oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Start();

Start()를 호출할 때 클라이언트가 아직 연결 중일 수 있으므로 여전히 서버에 데이터를 보낼 수 없습니다. 먼저 OnConnect 이벤트가 발생할 때까지 기다린 다음 서버에 메시지를 보내기 시작할 수 있습니다.

 

Close Connection


oClient.Stop();

Stop()을 호출할 때, 이 코드 직후 연결이 이미 닫혔는지 확신할 수 없으므로, OnDisconnect 이벤트가 발생할 때까지 기다려야 합니다.

 

 

Connect/Disconnect 메서드

Connect() 또는 Disconnect()를 호출하여 서버에 대한 연결을 열거나 닫을 때, 호출은 호출된 동일한 스레드에서 실행되지만 프로세스가 완료될 때까지 기다립니다. 프로세스가 완료될 때까지 기다리는 최대 시간을 정의하려면 Timeout을 설정해야 합니다(기본값 10초).

 

예제: 서버에 연결하고 최대 5초 대기


oClient := TsgcWebSocketClient.Create(nil);
...
if oClient.Connect(5000) then
  oClient.WriteData('Hello from client')
else
  Error();

Connect() 메서드가 성공적인 결과를 반환하면 연결이 활성 상태이므로 이미 서버에 메시지를 전송할 수 있습니다.

 

 

예제: 서버에서 연결을 해제하고 최대 10초 대기


if oClient.Disconnect(10000) then
  ShowMessage('Disconnected')
else
  ShowMessage('Not Disconnected');

Disconnect() 메서드가 성공적인 결과를 반환하면, 이는 연결이 이미 닫혔음을 의미합니다.

 

OnBeforeConnect 이벤트는 클라이언트가 연결을 시도하기 전에 서버 연결 속성을 사용자 지정하는 데 사용할 수 있습니다.