WebSocket 클라이언트는 사용 가능한 이벤트로 커스텀할 수 있어요. 최신 버전에 두 가지 새로운 이벤트가 추가됐어요:
OnBeforeConnect: 클라이언트가 서버에 연결을 시도하기 직전에 호출되는 이벤트예요.
OnBeforeWatchDog: sgcWebSocket 클라이언트에는 연결 해제 후 재연결하는 WatchDog라는 내장 메서드가 있어요. 이 이벤트는 재연결을 시도하기 전에 호출돼요.
OnBeforeConnect
이 이벤트는 클라이언트가 서버에 연결을 시도하기 전에 호출돼요. 사용자가 수동으로 서버에 연결을 시도하거나 WatchDog이 활성화되어 연결 해제 후 자동으로 재연결을 시도할 때 발생해요.
이 메서드는 클라이언트 속성을 커스텀하는 데 사용할 수 있어요. 예시: 너무 많은 재시도 후 접근하려는 서버의 호스트/포트를 여기에서 변경할 수 있어요.
procedure OnBeforeConnect(Sender: TObject);
begin
if Retries > 10 then
TsgcWebSocketClient(Sender).URL := 'ws://echo.websocket.org';
end;
OnBeforeWatchDog
WatchDog이 활성화되어 서버에 재연결을 시도할 때 이 이벤트가 호출돼요. 여기에서 자체 재연결 알고리즘을 구현할 수 있어요. 예시: 먼저 보안 서버에 연결을 시도하고 실패하면 비보안 서버에 재연결을 시도할 수 있어요.
procedure OnBeforeWatchDog(Sender: TObject; var Handled:
Boolean);
begin
Handled := True;
TsgcWebSocketClient(Sender).URL := 'wss://server1';
if not TsgcWebSocketClient(Sender).Connect() then
begin
TsgcWebSocketClient(Sender).URL := 'ws://server2';
TsgcWebSocketClient(Sender).Connect();
end;
end;
