TsgcWebSocketClient › Méthodes › Ping
Envoie un frame ping WebSocket au serveur et retourne immédiatement sans attendre la réponse pong.
procedure Ping(const aText: String = '');
| Nom | Type | Description |
|---|---|---|
aText | const String
| Charge utile optionnelle à transporter dans la trame ping ; passez une chaîne vide pour envoyer un ping sans charge utile. |
Cette surcharge déclenche le ping et retourne immédiatement, sans bloquer l'appelant ni attendre le pong correspondant. Lorsque le client n'a aucune connexion, rien n'est envoyé et l'échec est signalé via OnError avec Connection = nil et l'erreur Data not sent, the client is not connected or its handshake has not completed. L'événement se déclenche sur le thread appelant avant que Ping ne retourne, et aucune exception n'est levée vers l'appelant. Définissez Options.RaiseDisconnectExceptions sur False pour ignorer ce signalement. Un ping envoyé avant que le handshake WebSocket ne se soit terminé n'est pas signalé comme une erreur, car le HeartBeat envoie lui aussi ses pings via cette méthode. Tout pong reçu du serveur est délivré de manière asynchrone via les événements de connexion standard. Les exceptions internes sont interceptées et acheminées vers OnError. Utilisez la surcharge avec délai d'attente de l'autre surcharge lorsque vous avez besoin de confirmer que le pair est toujours joignable.
oClient.Ping('keepalive');
function Ping(aTimeout: Integer; const aText: String = '') : Boolean;
| Nom | Type | Description |
|---|---|---|
aTimeout | Integer | Temps maximum en millisecondes pour attendre la réponse pong avant d'abandonner. |
aText | const String
| Charge utile optionnelle à transporter dans la trame ping ; passez une chaîne vide pour envoyer un ping sans charge utile. |
True si le serveur a répondu avec un pong correspondant dans la fenêtre de délai ; False sinon. Lorsque False est retourné, le client peut choisir de fermer la connexion car le pair est considéré comme inaccessible. (Boolean)
Cette surcharge bloque le thread appelant jusqu'à ce que le pong arrive ou que le délai s'écoule, elle est donc utile pour les vérifications de disponibilité interactives. La méthode retourne False immédiatement lorsque le client n'a aucune connexion, et le signale via OnError avec Connection = nil, comme décrit pour l'autre surcharge. Les exceptions levées par le socket sous-jacent sont interceptées et transmises à OnError. Pour un ping non bloquant, utiliser l'autre surcharge à la place.
if not oClient.Ping(5000, 'healthcheck') then
oClient.Disconnect;