Wanneer de server een binair bericht ontvangt, wordt de gebeurtenis OnBinary geactiveerd. Lees de parameter Data om het ontvangen binaire bericht op te halen.
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;
Standaard gebruikt de server de methode neAsynchronous om het OnMessage-evenement te verzenden. Dit betekent dat dit evenement wordt uitgevoerd in de context van de hoofdthread, waardoor het thread-veilig is om bijvoorbeeld een besturingselement van een formulier bij te werken.
Als uw server veel berichten ontvangt of als u de synchronisatie met andere threads moet beheren, stel dan de NotifyEvents-property in op neNoSync, dit betekent dat het OnMessage- event wordt uitgevoerd in de context van de connection thread, dus als u een control van een formulier moet bijwerken of toegang moet krijgen tot gedeelde objecten, moet u uw eigen synchronisatie- methoden implementeren.