TsgcWebSocketServer_HTTPAPI › Events › OnBinary
Si attiva ogni volta che un client invia un messaggio binario e questo viene ricevuto dal server.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary viene sollevato una volta che un payload binario completo è stato ricevuto e bufferizzato da un client. Il parametro Data espone i byte decodificati come un TMemoryStream posizionato a 0; lo legga all'interno del gestore perché lo stream è di proprietà del server e diventa non valido dopo il ritorno del gestore. L'evento viene eseguito sul thread worker IOCP che ha gestito il frame WebSocket HTTP.SYS in ingresso, quindi effettui il marshal al main thread prima di toccare i controlli UI. Se Options.FragmentedMessages è frgOnlyFragmented l'evento non viene sollevato e viene utilizzato OnFragmented al suo posto.
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;