Wenn der Client eine Binärnachricht empfängt, wird das Ereignis OnBinary ausgelöst. Lesen Sie den Data-Parameter, um die empfangene Binärnachricht abzurufen.
procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
oBitmap: TBitmap;
begin
oBitmap := TBitmap.Create;
Try
oBitmap.LoadFromStream(Data);
Image1.Picture.Assign(oBitmap);
Log(
'#image uncompressed size: ' + IntToStr(Data.Size) +
'. Total received: ' + IntToStr(Connection.RecBytes));
Finally
FreeAndNil(oBitmap);
End;
end;
Standardmäßig verwendet der Client
die Methode neAsynchronous, um
das OnMessage-Ereignis zu dispatchen; das bedeutet, dass dieses
Ereignis im Kontext des Haupt-Threads ausgeführt wird, sodass es threadsicher
ist, beispielsweise ein beliebiges Steuerelement eines Formulars zu aktualisieren.
Wenn Ihr Client
viele Nachrichten empfängt oder Sie die Synchronisierung mit
anderen Threads steuern müssen, setzen Sie die Eigenschaft NotifyEvents auf neNoSync,
das bedeutet, dass das Ereignis OnMessage im Kontext
des Verbindungs-Threads ausgeführt wird. Wenn Sie also
ein Steuerelement eines Formulars aktualisieren oder auf gemeinsam genutzte Objekte zugreifen müssen, müssen Sie Ihre
eigenen Synchronisierungsmethoden implementieren.