TsgcWebSocketProxyServer › Events › OnBinary
Si attiva ogni volta che un client WebSocket downstream invia un messaggio binario, prima che il proxy lo inoltri upstream.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary viene generato una volta che un payload binario completo è stato ricevuto e memorizzato nel buffer da un client WebSocket downstream. Il parametro Data espone i byte decodificati come TMemoryStream posizionato a 0; leggerlo all'interno del gestore perché lo stream è di proprietà del server e diventa non valido dopo il ritorno del gestore. Il proxy inoltra questo payload al server TCP upstream (Proxy.Host, Proxy.Port) subito dopo il ritorno del gestore, quindi è un luogo conveniente per ispezionare o registrare il frame prima che venga inoltrato. Per impostazione predefinita NotifyEvents è neAsynchronous, quindi OnBinary è sincronizzato con il thread principale ed è sicuro accedere ai controlli dell'interfaccia utente; passare a neNoSync per l'invio sul thread di connessione quando le prestazioni sono importanti. Se Options.FragmentedMessages è frgOnlyFragmented, l'evento non viene generato e viene utilizzato invece OnFragmented.
procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
oBitmap: TBitmap;
begin
oBitmap := TBitmap.Create;
try
oBitmap.LoadFromStream(Data);
Image1.Picture.Assign(oBitmap);
finally
FreeAndNil(oBitmap);
end;
end;