TsgcWebSocketClient › Ereignisse › OnBinary
Wird jedes Mal ausgelöst, wenn der Server eine binäre Nachricht an den Client sendet.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary wird ausgelöst, sobald die vollständige binäre Nutzlast empfangen und gepuffert wurde. Der Parameter Data stellt die dekodierten Bytes als TMemoryStream bereit, der auf 0 positioniert ist; lesen Sie ihn sofort, da der Stream dem Client gehört und nach der 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 aus dem Handler heraus zu aktualisieren; wechseln Sie zu neNoSync, wenn Sie die Synchronisierung vermeiden und die Thread-Sicherheit selbst handhaben möchten. 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;