TsgcWSPServer_WebRTC › Ereignisse › OnBeforeSubscription
Wird ausgelöst, wenn ein Peer um Beitritt zu einem Signalisierungskanal bittet, und gibt dem Server die Möglichkeit, das Abonnement zu akzeptieren oder abzulehnen.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription ist der Kanal- (oder Raum-)Name, den der Peer mit seinem sgc@subscribe-Umschlag gesendet hat — dieselbe Zeichenkette, die der zweite Peer verwenden muss, damit das SDP-/ICE-Relay funktioniert. Accept ist standardmäßig True; setzen Sie es auf False, um das SUBSCRIBE stillschweigend zu verwerfen, sodass der Peer nie zum Kanal hinzugefügt wird, was der typische Zugriffskontroll-Haken ist (ACL, Einladungstoken, Kapazitätsgrenze). Wenn Accept auf True bleibt, fügt die Komponente die Verbindung zur Abonnententabelle hinzu, erhöht den an den Client zurückgegebenen Abonnentenzähler und löst OnSubscription aus.
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;