TsgcTCPClient › Olaylar › OnBinary

OnBinary Olay

TCP sunucusundan ham baytlar alındığında tetiklenir.

Sözdizimi

property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object

Varsayılan Değer

—

Remarks

TsgcTCPClient WebSocket handshake olmadan ham TCP konuştuğu için türlü çerçeveler yoktur, dolayısıyla OnBinary baytları soketten okundukları gibi tam olarak teslim eder. TCPEndOfFrameScanBuffer eofScanNone olduğunda her soket okuması, arabelleğe alınmış olanla olayı tetikler; eofScanLatestBytes veya eofScanAllBytes olduğunda akış TCPEndOfFrame sınırlayıcısında bölünür ve mantıksal çerçeve başına bir olay tetiklenir. Data parametresi, çözülmüş baytları 0 konumunda bir TMemoryStream olarak açığa çıkarır; akış istemciye ait olduğu ve işleyici döndükten sonra geçersiz hale geldiği için hemen okuyun. Varsayılan olarak NotifyEvents neAsynchronous'tur, dolayısıyla OnBinary ana iş parçacığıyla senkronize edilir ve işleyiciden arayüz denetimlerini güncellemek güvenlidir; senkronizasyondan kaçınmanız ve iş parçacığı güvenliğini kendiniz işlemeniz gerekiyorsa neNoSync'e geçin.

Örnek


procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
  oBytes: TBytes;
begin
  SetLength(oBytes, Data.Size);
  Data.Position := 0;
  Data.ReadBuffer(oBytes[0], Data.Size);
  // ... process the raw TCP payload
end;

Olaylara Dön