WebSocket 客户端可以通过可用的事件进行自定义。最新版本新增了 2 个事件:
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;
