TsgcTURNServerZdarzenia › OnTURNBeforeRelayIndication

OnTURNBeforeRelayIndication Zdarzenie

Wywoływane przed przekazaniem przez serwer ładunku Send-Indication do peera; ustawienie Accept na False powoduje odrzucenie pakietu.

Składnia

property OnTURNBeforeRelayIndication: TsgcTURNBeforeRelayIndicationEvent;
// TsgcTURNBeforeRelayIndicationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aPeerIP: string; aPeerPort: Word; const aBytes: TBytes; var Accept: Boolean) of object

Wartość domyślna

Uwagi

Wywoływane na gorącej ścieżce przekaźnika, raz na wskazanie Send (RFC 5766, sekcja 10): klient wysłał wskazanie SEND zawierające dane aplikacji, które muszą zostać przekazane do węzła, dla którego uprawnienie już istnieje. Parametry aPeerIP/aPeerPort identyfikują docelowy węzeł (pobrane z XOR-PEER-ADDRESS), a aBytes zawiera ładunek, który ma zostać przekazany przez gniazdo przekaźnika alokacji. Użyj zdarzenia do inspekcji lub przechwycenia przekazywanego ruchu (np. do monitorowania pakietów audio/wideo przesyłanych przez serwer TURN) lub do implementacji ograniczania przepustowości per-peer. Ustaw Accept := False, aby po cichu odrzucić datagram; żaden błąd nie jest wysyłany do klienta nadającego. Zdarzenie jest wywoływane na ścieżce przekaźnika i działa synchronicznie, chyba że NotifyEvents przekieruje je — rozważ użycie neNoSync przy dużym obciążeniu, aby uniknąć ciśnienia zwrotnego na odbiorniku. aBytes jest widokiem tylko do odczytu; nie modyfikuj jego zawartości.

Przykład

procedure TForm1.OnTURNBeforeRelayIndication(Sender: TObject;
  const aSocket: TsgcSocketConnection; const aPeerIP: string; aPeerPort: Word;
  const aBytes: TBytes; var Accept: Boolean);
begin
  vBytesRelayed := vBytesRelayed + Length(aBytes);
  Accept := True;
end;

Powrót do Zdarzeń