TsgcWSPServer_WebRTC › Events › OnBeforeSubscription
Disparado quando um peer solicita ingressar em um canal de sinalização, dando ao servidor a chance de aceitar ou rejeitar a assinatura.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription é o nome do canal (ou sala) que o peer enviou com seu envelope sgc@subscribe — a mesma string que o segundo peer deve usar para que o relay de SDP/ICE funcione. Accept é True por padrão; defina-o como False para descartar o SUBSCRIBE silenciosamente, de modo que o peer nunca seja adicionado ao canal, que é o gancho típico de controle de acesso (ACL, token de convite, limite de capacidade). Quando Accept permanece True, o componente adiciona a conexão à tabela de assinantes, incrementa o contador de assinantes retornado ao cliente e dispara OnSubscription.
procedure TForm1.WebRTCServerBeforeSubscription(Connection: TsgcWSConnection;
const Subscription: String; var Accept: Boolean);
begin
// cap rooms at two peers so sessions are strictly one-to-one
Accept := WebRTCSrv.WebRTCSubscriptions.IndexOfName(
WebRTCSrv.Guid + '_' + Subscription) = -1;
Memo1.Lines.Add(Format('[%s] SUBSCRIBE %s -> %s',
[Connection.Guid, Subscription, BoolToStr(Accept, True)]));
end;