TsgcTURNServer › Eventos › OnTURNBeforeRelayChannelData
Se genera antes de que el servidor retransmita una carga útil ChannelData a un par; establezca Accept en False para descartar el paquete.
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
—
Se activa en el camino caliente del relay para el tráfico ChannelData (RFC 5766 sección 11): el ligero encuadre de 4 bytes que TURN utiliza en lugar de las indicaciones Send/Data una vez que un canal ha sido enlazado con CHANNEL-BIND. aRelayType indica la dirección del relay (cliente a par o par a cliente) y aPeerIP/aPeerPort identifican el endpoint remoto. aChannelData expone el número de canal y los bytes de carga útil que están a punto de reenviarse. Use el evento para inspeccionar el flujo multimedia (audio/vídeo capturado a través del servidor TURN) o para aplicar límites de velocidad por canal. Establezca Accept := False para descartar silenciosamente el datagrama sin enviar ningún error a ninguna de las partes. Este evento se activa por cada paquete ChannelData retransmitido, así que mantenga el manejador ligero; se ejecuta de forma síncrona a menos que NotifyEvents lo redirija. Use neNoSync bajo carga sostenida para evitar contrapresión en el oyente.
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;