matrix-js-sdk
    Preparing search index...

    Interface IMembershipManagerInternal

    This interface defines what a MembershipManager uses and exposes. This interface is what we use to write tests and allows changing the actual implementation without breaking tests because of some internal method renaming.

    interface IMembershipManager {
        get delayId(): string | undefined;
        get ownMembership(): CallMembership | undefined;
        get probablyLeft(): boolean;
        get status(): Status;
        addListener<T extends EventEmitterEvents | MembershipManagerEvent>(
            event: T,
            listener: Listener<
                MembershipManagerEvent,
                MembershipManagerEventHandlerMap,
                T,
            >,
        ): this;
        emit<T extends MembershipManagerEvent>(
            event: T,
            ...args: Parameters<MembershipManagerEventHandlerMap[T]>,
        ): boolean;
        emit<T extends MembershipManagerEvent>(
            event: T,
            ...args: Parameters<MembershipManagerEventHandlerMap[T]>,
        ): boolean;
        emitPromised<T extends MembershipManagerEvent>(
            event: T,
            ...args: Parameters<MembershipManagerEventHandlerMap[T]>,
        ): Promise<boolean>;
        emitPromised<T extends MembershipManagerEvent>(
            event: T,
            ...args: Parameters<MembershipManagerEventHandlerMap[T]>,
        ): Promise<boolean>;
        isActivated(): boolean;
        join(
            publishedTransports: Transport[],
            onError?: (error: unknown) => void,
        ): void;
        leave(timeout?: number): Promise<boolean>;
        listenerCount(event: EventEmitterEvents | MembershipManagerEvent): number;
        listeners(event: EventEmitterEvents | MembershipManagerEvent): Function[];
        off<T extends EventEmitterEvents | MembershipManagerEvent>(
            event: T,
            listener: Listener<
                MembershipManagerEvent,
                MembershipManagerEventHandlerMap,
                T,
            >,
        ): this;
        on<T extends EventEmitterEvents | MembershipManagerEvent>(
            event: T,
            listener: Listener<
                MembershipManagerEvent,
                MembershipManagerEventHandlerMap,
                T,
            >,
        ): this;
        once<T extends EventEmitterEvents | MembershipManagerEvent>(
            event: T,
            listener: Listener<
                MembershipManagerEvent,
                MembershipManagerEventHandlerMap,
                T,
            >,
        ): this;
        onRTCSessionMemberUpdate(memberships: CallMembership[]): Promise<void>;
        prependListener<T extends EventEmitterEvents | MembershipManagerEvent>(
            event: T,
            listener: Listener<
                MembershipManagerEvent,
                MembershipManagerEventHandlerMap,
                T,
            >,
        ): this;
        prependOnceListener<T extends EventEmitterEvents | MembershipManagerEvent>(
            event: T,
            listener: Listener<
                MembershipManagerEvent,
                MembershipManagerEventHandlerMap,
                T,
            >,
        ): this;
        rawListeners(
            event: EventEmitterEvents | MembershipManagerEvent,
        ): Function[];
        removeAllListeners(
            event?: EventEmitterEvents | MembershipManagerEvent,
        ): this;
        removeListener<T extends EventEmitterEvents | MembershipManagerEvent>(
            event: T,
            listener: Listener<
                MembershipManagerEvent,
                MembershipManagerEventHandlerMap,
                T,
            >,
        ): this;
        updateApplicationData(
            applicationData: Record<string, unknown>,
        ): Promise<void>;
        updateCallIntent(callIntent: string): Promise<void>;
    }

    Hierarchy (View Summary)

    Index
    • get delayId(): string | undefined

      If the membership manager has reason to believe that the hs sent a leave event and as a consequence the current user is perceived as left for other session participants.

      Returns string | undefined

    • get probablyLeft(): boolean

      If the membership manager has reason to believe that the hs sent a leave event and as a consequence the current user is perceived as left for other session participants.

      Returns boolean

    • If the manager is activated. This means it tries to do its job to join the call, resend state events... It does not imply that the room state is already configured to represent being joined. It means that the Manager tries to connect or is connected. ("the manager is still active") Once leave() is called the manager is not activated anymore but still running until leave() resolves.

      Returns boolean

      true if we intend to be participating in the MatrixRTC session

    • Start sending all necessary events to make this user participate in the RTC session.

      Parameters

      • publishedTransports: Transport[]

        the list of transports on which the member is publishing.

      • OptionalonError: (error: unknown) => void

      Returns void

      can throw if it exceeds a configured maximum retry.

    • Send all necessary events to make this user leave the RTC session.

      Parameters

      • Optionaltimeout: number

        the maximum duration in ms until the promise is forced to resolve.

      Returns Promise<boolean>

      It resolves with true in case the leave was sent successfully. It resolves with false in case we hit the timeout before sending successfully.

    • Replace the application-specific data of our membership (see SessionConfig.applicationData), re-sending the membership if it changed.

      Parameters

      • applicationData: Record<string, unknown>

      Returns Promise<void>

    • Update the intent of a membership on the call (e.g. user is now providing a video feed)

      Parameters

      • callIntent: string

        The new intent to set.

      Returns Promise<void>