TsgcWebSocketClient메서드 › Ping

Ping 메서드

서버에 WebSocket ping 프레임을 보내고 pong 응답을 기다리지 않고 즉시 반환합니다.

Overloads

오버로드 1

구문

procedure Ping(const aText: String = '');

Parameters

NameType설명
aTextconst Stringping 프레임 안에 담을 선택적 페이로드입니다. 페이로드 없이 ping을 보내려면 빈 문자열을 전달하십시오.

설명

이 오버로드는 ping을 발생시키고 호출자를 차단하거나 일치하는 pong을 기다리지 않고 즉시 반환합니다. 클라이언트가 연결되지 않은 경우 no-op입니다. 서버로부터 받은 모든 pong은 표준 연결 이벤트를 통해 비동기적으로 전달됩니다. 내부적으로 예외는 포착되어 OnError로 라우팅됩니다. 피어가 여전히 도달 가능한지 확인이 필요한 경우 다른 오버로드의 timeout 오버로드를 사용하십시오.

예제


oClient.Ping('keepalive');

Overload 2

구문

function Ping(aTimeout: Integer; const aText: String = '') : Boolean;

Parameters

NameType설명
aTimeoutInteger포기하기 전에 pong 응답을 기다리는 최대 시간(밀리초)입니다.
aTextconst Stringping 프레임 안에 담을 선택적 페이로드입니다. 페이로드 없이 ping을 보내려면 빈 문자열을 전달하십시오.

반환 값

서버가 시간 초과 창 내에 일치하는 pong으로 응답하면 True, 그렇지 않으면 False입니다. False가 반환되면 피어가 도달할 수 없는 것으로 간주되므로 클라이언트가 연결을 닫도록 선택할 수 있습니다. (Boolean)

설명

이 오버로드는 pong이 도착하거나 시간 초과가 경과할 때까지 호출 스레드를 차단하므로 대화형 활성 검사에 유용합니다. 클라이언트가 연결되어 있지 않으면 메서드는 즉시 False를 반환합니다. 기본 소켓이 발생시킨 예외는 잡혀 OnError로 전달됩니다. 차단하지 않는 fire-and-forget ping의 경우 대신 매개변수가 없는 다른 오버로드 오버로드를 사용하십시오.

예제


if not oClient.Ping(5000, 'healthcheck') then
  oClient.Disconnect;

메서드로 돌아가기