TsgcWebSocketProxyServer › Méthodes › WriteData

WriteData Méthode

Envoie un message à un seul client WebSocket sur le proxy identifié par son GUID de connexion.

Surcharges

Surcharge 1

Syntaxe

function WriteData(const aGuid, aMessage: string): Boolean;

Paramètres

NomTypeDescription
aGuid const stringIdentifiant de la connexion cible tel qu'assigné par le proxy lors de la complétion de la négociation du client.
aMessageconst stringCharge utile textuelle à livrer à ce client sous forme de trame de texte WebSocket.

Valeur de retour

True lorsqu'une connexion avec le GUID donné a été trouvée et que la trame a été transmise à son socket ; False lorsqu'aucune connexion active correspondante n'existe. (Boolean)

Remarques

Cette surcharge recherche la connexion WebSocket dont le GUID correspond à aGuid et envoie le message texte à ce client unique sur le côté navigateur du tunnel. Le GUID est la valeur exposée par TsgcWSConnection.Guid, généralement capturée dans OnConnect et stockée par l'application. Le lien TCP en amont associé n'est pas écrit par cet appel ; utilisez-le pour transmettre des données du proxy au client navigateur sans acheminer les octets par le serveur TCP backend. Utilisez Broadcast pour atteindre tous les clients WebSocket actifs en un seul appel.

Exemple


oServer.WriteData('guid', 'My First sgcWebSockets Message!.');

Surcharge 2

Syntaxe

function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;

Paramètres

NomTypeDescription
aGuid const String Identifiant de la connexion cible tel qu'assigné par le proxy lors de la complétion de la négociation du client.
aStreamTStream Flux source dont le contenu est envoyé au client sous forme de trame binaire WebSocket. L'appelant reste propriétaire du flux.
aSizeIntegerTaille 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.

Valeur de retour

True si une connexion avec le GUID donné a été trouvée et que le flux a été remis à son socket ; False si aucune connexion active correspondante n'existe. (Boolean)

Remarques

Cette surcharge cible un seul client WebSocket du côté navigateur du proxy avec une charge utile binaire lue depuis le flux fourni. Le flux est consommé à partir de sa position actuelle et le serveur n'en prend pas possession, de sorte que l'appelant doit le maintenir actif jusqu'au retour de WriteData. La connexion TCP en amont associée à ce GUID n'est pas écrite ici ; les octets sont distribués uniquement au pair WebSocket. Utilisez aSize conjointement avec aStreaming lors de l'envoi de très grandes charges utiles qui doivent être fragmentées sur plusieurs trames WebSocket.

Exemple


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

Retour aux méthodes