TsgcWebSocketServer_HTTPAPI › 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är-Nutzlast von einem Client empfangen und gepuffert wurde. Der Data-Parameter macht die decodierten Bytes als TMemoryStream verfügbar, der auf 0 positioniert ist; lesen Sie ihn innerhalb des Handlers, da der Stream dem Server gehört und nach der Rückkehr des Handlers ungültig wird. Das Ereignis läuft auf dem IOCP-Worker-Thread, der den eingehenden HTTP.SYS-WebSocket-Frame behandelt hat, marshallieren Sie also zum Hauptthread, bevor Sie UI-Steuerelemente berühren. Wenn Options.FragmentedMessages frgOnlyFragmented ist, wird das Ereignis nicht ausgelöst und OnFragmented stattdessen 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;