TsgcWebSocketServer › 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 eine vollständige binäre Nutzlast von einem Client empfangen und gepuffert wurde. Der Parameter Data stellt die dekodierten Bytes als TMemoryStream bereit, der auf 0 positioniert ist; 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 neAsynchronous, sodass OnBinary mit dem Haupt-Thread synchronisiert wird und es sicher ist, UI-Steuerelemente zu berühren; wechseln Sie zu neNoSync, um auf dem Verbindungs-Thread zu versenden, wenn der Durchsatz wichtig ist. Wenn Options.FragmentedMessages frgOnlyFragmented 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;