TsgcWebSocketServer | Server binair bericht ontvangen

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.