TsgcTURNServerOlaylar › OnTURNBeforeRelayChannelData

OnTURNBeforeRelayChannelData Olay

Sunucu bir ChannelData yükünü bir eşe iletmeden önce tetiklenir; paketi düşürmek için Accept değerini False olarak ayarlayın.

Sözdizimi

property OnTURNBeforeRelayChannelData: TsgcTURNBeforeRelayChannelDataEvent;
// TsgcTURNBeforeRelayChannelDataEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; aRelayType: TsgcTURNRelayChannelDataType; const aPeerIP: string; aPeerPort: Word; const aChannelData: TsgcTURNChannelData; var Accept: Boolean) of object

Varsayılan Değer

Remarks

ChannelData trafiği için relay hot-path'inde tetiklenir (RFC 5766 bölüm 11): bir kanal CHANNEL-BIND ile bağlandıktan sonra TURN'ün Send/Data indication'ları yerine kullandığı hafif 4-byte çerçeveleme. aRelayType, relay'in yönünü (client-to-peer ve peer-to-client) gösterir ve aPeerIP/aPeerPort uzak uç noktayı tanımlar. aChannelData, kanal numarasını ve iletilmek üzere olan yük baytlarını sunar. Medya stream'ini (TURN sunucusu aracılığıyla yakalanan ses/video) incelemek veya kanal başına hız sınırları uygulamak için olayı kullanın. Datagramı sessizce düşürmek için Accept := False olarak ayarlayın — her iki tarafa da hata gönderilmez. Bu olay her iletilen ChannelData paketi için tetiklenir, bu nedenle işleyiciyi yalın tutun; NotifyEvents onu yeniden yönlendirmedikçe eşzamanlı olarak çalışır. Dinleyicide geri basınçtan kaçınmak için sürekli yük altında neNoSync kullanın.

Örnek

procedure TForm1.OnTURNBeforeRelayChannelData(Sender: TObject;
  const aSocket: TsgcSocketConnection; aRelayType: TsgcTURNRelayChannelDataType;
  const aPeerIP: string; aPeerPort: Word; const aChannelData: TsgcTURNChannelData;
  var Accept: Boolean);
begin
  Accept := True;
end;

Olaylara Dön