TsgcTURNServerEvents › OnTURNBeforeRelayChannelData

OnTURNBeforeRelayChannelData Zdarzenie

Wywoływane przed przekazaniem przez serwer ładunku ChannelData do peera; ustawienie właściwości Accept na False powoduje odrzucenie pakietu.

Składnia

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

Wartość domyślna

Uwagi

Wywoływane na gorącej ścieżce przekazywania dla ruchu ChannelData (RFC 5766 sekcja 11): lekkie ramkowanie 4-bajtowe stosowane przez TURN zamiast wskazań Send/Data po powiązaniu kanału przez CHANNEL-BIND. Parametr aRelayType wskazuje kierunek przekazywania (klient-do-peera lub peer-do-klienta), a parametry aPeerIP/aPeerPort identyfikują zdalny punkt końcowy. Parametr aChannelData udostępnia numer kanału i bajty ładunku, które mają zostać przekazane. Za pomocą tego zdarzenia można inspekcjonować strumień mediów (audio/wideo przechodzący przez serwer TURN) lub wymuszać limity przepustowości per kanał. Ustawienie Accept := False powoduje ciche odrzucenie datagramu bez wysyłania błędu do żadnej ze stron. Zdarzenie jest wywoływane dla każdego przekazanego pakietu ChannelData, dlatego procedura obsługi powinna być zwięzła; działa synchronicznie, chyba że właściwość NotifyEvents ją przekieruje. W przypadku dużego obciążenia należy używać wartości neNoSync, aby uniknąć wywierania wstecznego ciśnienia na listener.

Przykład

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;

Powrót do Zdarzeń