Una vez que su cliente se ha conectado al servidor, en ocasiones la conexión puede cerrarse por mala señal, errores de conexión... hay 2 propiedades que ayudan a mantener la conexión activa.
HeartBeat permite enviar un Ping cada X segundos para mantener la conexión activa. Algunos servidores cierran las conexiones TCP si no se intercambian datos entre los pares. HeartBeat resuelve este problema enviando un ping en un intervalo específico. Normalmente esto es suficiente para mantener activa una conexión.
La propiedad HeartBeatType permite personalizar el funcionamiento del HeartBeat:
1. hbtAlways: envía un ping cada x segundos definidos en el Interval.
2. hbtOnlyIfNoMsgRcvInterval: envía un ping cada x segundos solo si no se han recibido mensajes durante los últimos x segundos definidos en la propiedad Interval.
Ejemplo: enviar un ping cada 30 segundos
oClient := TsgcHTTP2Client.Create(nil);
oClient.HeartBeat.Interval := 30;
oClient.HeartBeat.Enabled := true;
oClient.Active := true;
Si WatchDog está habilitado, cuando el cliente detecta una desconexión, WatchDog intenta reconectarse cada X segundos hasta que la conexión vuelva a estar activa.
Ejemplo: reconexión cada 10 segundos tras una desconexión con intentos ilimitados.
oClient := TsgcHTTP2Client.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
oClient.WatchDog.Enabled := true;
oClient.Active := true;