TsgcWebSocketClient › Métodos › Ping

Ping Método

Envía un frame de ping WebSocket al servidor y regresa inmediatamente sin esperar la respuesta pong.

Sobrecargas

Sobrecarga 1

Sintaxis

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

Parámetros

NombreTipoDescripción
aTextconst StringCarga útil opcional a incluir en el frame de ping; pase una cadena vacía para enviar un ping sin carga útil.

Observaciones

Esta sobrecarga envía el ping y retorna de inmediato, sin bloquear al llamador ni esperar el pong correspondiente. Cuando el cliente no tiene conexión, no se envía nada y el fallo se informa a través de OnError con Connection = nil y el error Data not sent, the client is not connected or its handshake has not completed. El evento se activa en el hilo que realiza la llamada antes de que Ping retorne, y no se genera ninguna excepción hacia el llamador. Establezca Options.RaiseDisconnectExceptions en False para omitir este aviso. Un ping enviado antes de que se haya completado el handshake de WebSocket no se informa como error, porque el HeartBeat también envía sus pings a través de este método. Cualquier pong recibido del servidor se entrega de forma asíncrona a través de los eventos de conexión estándar. Internamente, las excepciones se capturan y se enrutan a OnError. Utilice la sobrecarga con tiempo de espera de la otra sobrecarga cuando necesite confirmar que el par sigue siendo accesible.

Ejemplo


oClient.Ping('keepalive');

Sobrecarga 2

Sintaxis

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

Parámetros

NombreTipoDescripción
aTimeoutIntegerTiempo máximo en milisegundos para esperar la respuesta pong antes de abandonar.
aTextconst StringCarga útil opcional a incluir en el frame de ping; pase una cadena vacía para enviar un ping sin carga útil.

Valor de Retorno

True si el servidor respondió con un pong coincidente dentro del intervalo de tiempo de espera; False en caso contrario. Cuando se devuelve False, el cliente puede optar por cerrar la conexión porque se considera que el par es inaccesible. (Boolean)

Observaciones

Esta sobrecarga bloquea el hilo llamante hasta que llega el pong o se agota el tiempo de espera, por lo que es útil para comprobaciones de disponibilidad interactivas. El método devuelve False inmediatamente cuando el cliente no tiene conexión, e informa de ello a través de OnError con Connection = nil, tal y como se describe para la otra sobrecarga. Las excepciones lanzadas por el socket subyacente son capturadas y redirigidas a OnError. Para un ping sin bloqueo que no espera respuesta, use la otra sobrecarga en su lugar.

Ejemplo


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

Volver a Métodos