TsgcWebSocketClientMéthodes › WriteData

WriteData Méthode

Envoie un message texte au serveur WebSocket, en le divisant éventuellement en fragments d'une taille donnée.

Surcharges

Surcharge 1

Syntaxe

procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);

Paramètres

NomTypeDescription
aTextconst String La charge utile texte à envoyer au serveur sous forme de trame texte WebSocket.
aSizeconst Integer Taille de fragment optionnelle en octets ; lorsqu'elle est supérieure à zéro, le message est divisé en plusieurs fragments de cette taille. Utilisez 0 (la valeur par défaut) pour envoyer le message entier en une seule trame.
aStreaming const TwsStreaming Mode de streaming pour la transmission fragmentée (stmNone, stmStart, stmContinue, stmFinish). La valeur par défaut est stmNone, qui envoie un message autonome complet.

Remarques

WriteData transmet la chaîne en tant que trame de texte WebSocket sur la connexion active. Par défaut, l'appel s'exécute sur le thread appelant et retourne une fois que les octets ont été remis au socket. Lorsque QueueOptions.Text est défini sur une valeur autre que qmNone, le message est mis en file d'attente et réellement envoyé depuis le propre thread de la connexion, ce qui évite les verrouillages lorsque plusieurs threads écrivent simultanément. L'appel est sans effet lorsque le client n'est pas connecté, et toute exception de socket est transmise à OnError. Utilisez la surcharge flux pour envoyer des charges utiles volumineuses ou des données binaires.

Exemple


oClient.WriteData('My First sgcWebSockets Message!.');

Surcharge 2

Syntaxe

procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);

Paramètres

NomTypeDescription
aStreamconst TStream Flux source dont le contenu sera envoyé sous forme d'une trame binaire WebSocket. L'appelant reste propriétaire du flux.
aSizeconst Integer Taille de fragment optionnelle en octets ; lorsqu'elle est supérieure à zéro, le flux est découpé en plusieurs fragments de cette taille. Utilisez 0 (la valeur par défaut) pour envoyer l'intégralité du flux en une seule trame.
aStreaming const TwsStreaming Mode de streaming pour la transmission fragmentée (stmNone, stmStart, stmContinue, stmFinish). La valeur par défaut est stmNone, qui envoie un message autonome complet.

Remarques

WriteData lit le flux fourni depuis sa position actuelle et transmet le contenu sous forme de trame WebSocket binaire. L'appel s'exécute sur le thread appelant par défaut ; lorsque QueueOptions.Binary est défini sur une valeur autre que qmNone, le message est mis en file d'attente et effectivement distribué depuis le thread de connexion. La méthode est une opération nulle lorsque le client n'est pas connecté, et les exceptions de socket sont capturées et transmises à OnError. Libérez le flux uniquement après le retour de l'appel (ou, lors de la mise en file d'attente, après que l'envoi soit terminé).

Exemple


oStream := TMemoryStream.Create;
try
  oStream.LoadFromFile('payload.bin');
  oClient.WriteData(oStream);
finally
  oStream.Free;
end;

Retour aux méthodes