TsgcWebSocketProxyServer › Metodi › WriteData

WriteData Method

Invia un messaggio a un singolo client WebSocket sul proxy identificato dal suo GUID di connessione.

Overload

Overload 1

Sintassi

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

Parametri

NomeTipoDescrizione
aGuidconst stringIdentificatore della connessione di destinazione assegnato dal proxy quando l'handshake del client è stato completato.
aMessageconst stringPayload di testo da consegnare a quel client come frame di testo WebSocket.

Valore restituito

True quando è stata trovata una connessione con il GUID specificato e il frame è stato passato al relativo socket; False quando non esiste alcuna connessione attiva corrispondente. (Boolean)

Note

Questo overload cerca la connessione WebSocket il cui GUID corrisponde a aGuid e invia il messaggio di testo a quel singolo client sul lato browser del tunnel. Il GUID è il valore esposto da TsgcWSConnection.Guid, tipicamente acquisito in OnConnect e memorizzato dall'applicazione. Il collegamento TCP upstream accoppiato non viene scritto da questa chiamata; utilizzarlo per inviare dati dal proxy al client browser senza instradare i byte attraverso il server TCP backend. Utilizzare Broadcast per raggiungere ogni client WebSocket attivo con una sola chiamata.

Esempio


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

Sovraccarico 2

Sintassi

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

Parametri

NomeTipoDescrizione
aGuidconst StringIdentificatore della connessione di destinazione assegnato dal proxy quando l'handshake del client è stato completato.
aStreamTStreamStream sorgente il cui contenuto viene inviato al client come frame binario WebSocket. Il chiamante rimane il proprietario dello stream.
aSizeIntegerDimensione opzionale del frammento in byte; quando è maggiore di zero, lo stream viene suddiviso in più frammenti di questa dimensione. Utilizzare 0 (il valore predefinito) per inviare l'intero stream come un singolo frame.
aStreamingconst TwsStreamingModalità di streaming per la trasmissione frammentata (stmNone, stmStart, stmContinue, stmFinish). Il valore predefinito è stmNone, che invia un messaggio completo autonomo.

Valore restituito

True quando è stata individuata una connessione con il GUID specificato e lo stream è stato consegnato al relativo socket; False quando non esiste alcuna connessione attiva corrispondente. (Boolean)

Note

Questo overload ha come destinatario un singolo client WebSocket sul lato del proxy rivolto al browser con un payload binario letto dallo stream fornito. Lo stream viene consumato dalla sua posizione corrente e il server non ne assume la proprietà, quindi il chiamante deve mantenerlo attivo finché WriteData non ritorna. La connessione TCP upstream associata a questo GUID non viene scritta qui; i byte vengono recapitati solo al peer WebSocket. Utilizzi aSize insieme a aStreaming quando invia payload molto grandi che devono essere frammentati su più frame WebSocket.

Esempio


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

Torna ai Metodi