TsgcWebSocketHTTPServer › Ereignisse › OnBinary
Wird jedes Mal ausgelöst, wenn ein Client eine Binärnachricht sendet und sie vom Server empfangen wird.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary wird ausgelöst, sobald ein vollständiges binäres Payload von einem WebSocket-Client empfangen und gepuffert wurde. Der Parameter Data stellt die decodierten Bytes als TMemoryStream auf Position 0 bereit; lesen Sie ihn innerhalb des Handlers, da der Stream dem Server gehört und nach Rückkehr des Handlers ungültig wird. Standardmäßig ist NotifyEvents auf neAsynchronous gesetzt, sodass OnBinary mit dem Hauptthread synchronisiert wird und es sicher ist, UI-Steuerelemente anzufassen; wechseln Sie zu neNoSync, um im Verbindungsthread auszuliefern, wenn der Durchsatz wichtig ist. Wenn Options.FragmentedMessages auf frgOnlyFragmented gesetzt ist, wird das Ereignis nicht ausgelöst und stattdessen OnFragmented verwendet.
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;