TsgcWSPServer_WebRTC › Zdarzenia › OnBeforeSubscription
Wywoływane, gdy peer prosi o dołączenie do kanału sygnalizacyjnego, dając serwerowi możliwość zaakceptowania lub odrzucenia subskrypcji.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription to nazwa kanału (lub pokoju) przesłana przez węzeł z kopertą sgc@subscribe — ten sam ciąg, którego musi użyć drugi węzeł, aby przekazywanie SDP/ICE działało. Accept domyślnie ma wartość True; ustawienie na False powoduje ciche odrzucenie SUBSCRIBE, przez co węzeł nigdy nie zostanie dodany do kanału — jest to typowy punkt kontroli dostępu (ACL, token zaproszenia, limit pojemności). Gdy Accept pozostaje True, komponent dodaje połączenie do tabeli subskrybentów, zwiększa licznik subskrybentów zwracany klientowi i wywołuje 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;