TsgcWSPServer_WebRTC › Eventos › OnBeforeSubscription
Se dispara cuando un par solicita unirse a un canal de señalización, dando al servidor la oportunidad de aceptar o rechazar la suscripción.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription es el nombre del canal (o sala) que el peer envió con su envelope sgc@subscribe — la misma cadena que el segundo peer debe usar para que el relay SDP/ICE funcione. Accept es True por defecto; establézcalo en False para descartar silenciosamente el SUBSCRIBE de modo que el peer nunca se añada al canal, lo cual es el típico gancho de control de acceso (ACL, token de invitación, límite de capacidad). Cuando Accept permanece en True, el componente añade la conexión a la tabla de suscriptores, incrementa el contador de suscriptores devuelto al cliente y activa 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;