클라이언트가 서버에 연결되면 때때로 약한 신호, 연결 오류 등으로 인해 연결이 닫힐 수 있습니다. 연결을 활성 상태로 유지하는 데 도움이 되는 2개의 속성이 있습니다.
HeartBeat 속성을 사용하면 연결을 활성 상태로 유지하기 위해 X 초마다 Ping을 보낼 수 있습니다. 일부 서버는 피어 간에 데이터가 교환되지 않으면 TCP 연결을 닫습니다. HeartBeat는 특정 간격마다 ping을 보내 이 문제를 해결합니다. 일반적으로 이것으로 연결을 활성 상태로 유지하기에 충분합니다.
HeartBeatType 속성을 사용하면 HeartBeat 작동 방식을 사용자 지정할 수 있습니다:
1. hbtAlways: Interval에 정의된 x초마다 ping을 보냅니다.
2. hbtOnlyIfNoMsgRcvInterval: Interval 속성에 정의된 최근 x초 동안 메시지가 수신되지 않은 경우에만 x초마다 ping을 보냅니다.
예제: 30초마다 ping 보내기
oClient := TsgcHTTP2Client.Create(nil);
oClient.HeartBeat.Interval := 30;
oClient.HeartBeat.Enabled := true;
oClient.Active := true;
WatchDog이 활성화된 경우, 클라이언트가 연결 해제를 감지하면 WatchDog은 연결이 다시 활성화될 때까지 X초마다 재연결을 시도합니다.
예: 연결 해제 후 무제한 시도로 10초마다 재연결합니다.
oClient := TsgcHTTP2Client.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
oClient.WatchDog.Enabled := true;
oClient.Active := true;