SlidingSync is a high-level data structure which controls the majority of sliding sync. It has no hooks into JS SDK except for needing a MatrixClient to perform the HTTP request. This means this class (and everything it uses) can be used in isolation from JS SDK if needed. To hook this up with the JS SDK, you need to use SlidingSyncSdk.

Hierarchy (view full)

Constructors

Properties

abortController?: AbortController
client: MatrixClient

The client to use for /sync calls.

confirmedRoomSubscriptions: Set<string> = ...
customSubscriptions: Map<string, MSC3575RoomSubscription> = ...
desiredRoomSubscriptions: Set<string> = ...
extensions: Record<string, Extension<any, any>> = {}
listModifiedCount: number = 0
lists: Map<string, SlidingList>
needsResend: boolean = false
proxyBaseUrl: string

The base URL of the sliding sync proxy

roomIdToCustomSubscription: Map<string, string> = ...
roomSubscriptionInfo: MSC3575RoomSubscription

The params to use for room subscriptions.

terminated: boolean = false
timeoutMS: number

The number of milliseconds to wait for a response.

txnId: null | string = null
txnIdDefers: (IDeferred<string> & {
    txnId: string;
})[] = []

Methods

  • Add a custom room subscription, referred to by an arbitrary name. If a subscription with this name already exists, it is replaced. No requests are sent by calling this method.

    Parameters

    • name: string

      The name of the subscription. Only used to reference this subscription in useCustomSubscription.

    • sub: MSC3575RoomSubscription

      The subscription information.

    Returns void

  • Get the room index data for a list.

    Parameters

    • key: string

      The list key

    Returns null | {
        joinedCount: number;
        roomIndexToRoomId: Record<number, string>;
    }

    The list data which contains the rooms in this list

  • Get the full request list parameters for a list index. This function is provided for callers to use in conjunction with setList to update fields on an existing list.

    Parameters

    • key: string

      The list key to get the params for.

    Returns null | MSC3575List

    A copy of the list params or undefined.

  • Get the room subscriptions for the sync API.

    Returns Set<string>

    A copy of the desired room subscriptions.

  • Invoke all attached room data listeners.

    Parameters

    • roomId: string

      The room which received some data.

    • roomData: MSC3575RoomData

      The raw sliding sync response JSON.

    Returns Promise<void>

  • Modify which events to retrieve for room subscriptions. Invalidates all room subscriptions such that they will be sent up afresh.

    Parameters

    Returns Promise<string>

    A promise which resolves to the transaction ID when it has been received down sync (or rejects with the transaction ID if the action was not applied e.g the request was cancelled immediately after sending, in which case the action will be applied in the subsequent request)

  • Modify the room subscriptions for the sync API. Calling this function will interrupt the /sync request to resend new subscriptions. If the /sync stream has not started, this will prepare the room subscriptions for when start() is called.

    Parameters

    • s: Set<string>

      The new desired room subscriptions.

    Returns Promise<string>

    A promise which resolves to the transaction ID when it has been received down sync (or rejects with the transaction ID if the action was not applied e.g the request was cancelled immediately after sending, in which case the action will be applied in the subsequent request)

  • Register an extension to send with the /sync request.

    Parameters

    • ext: Extension<any, any>

      The extension to register.

    Returns void

  • Removes all listeners, or those of the specified event.

    It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

    Parameters

    Returns this

    a reference to the EventEmitter, so that calls can be chained.

  • Parameters

    • listKey: string
    • index: number

    Returns void

  • Resend a Sliding Sync request. Used when something has changed in the request. Resolves with the transaction ID of this request on success. Rejects with the transaction ID of this request on failure.

    Returns Promise<string>

  • Re-setup this connection e.g in the event of an expired session.

    Returns void

  • Parameters

    • Optional txnId: string

    Returns void

  • Add or replace a list. Calling this function will interrupt the /sync request to resend new lists.

    Parameters

    • key: string

      The key to modify

    • list: MSC3575List

      The new list parameters.

    Returns Promise<string>

    A promise which resolves to the transaction ID when it has been received down sync (or rejects with the transaction ID if the action was not applied e.g the request was cancelled immediately after sending, in which case the action will be applied in the subsequent request)

  • Set new ranges for an existing list. Calling this function when only the ranges have changed is more efficient than calling setList(index,list) as this function won't resend sticky params, whereas setList always will.

    Parameters

    • key: string

      The list key to modify

    • ranges: number[][]

      The new ranges to apply.

    Returns Promise<string>

    A promise which resolves to the transaction ID when it has been received down sync (or rejects with the transaction ID if the action was not applied e.g the request was cancelled immediately after sending, in which case the action will be applied in the subsequent request)

  • Parameters

    • listKey: string
    • hi: number
    • low: number

    Returns void

  • Parameters

    • listKey: string
    • hi: number
    • low: number

    Returns void

  • Use a custom subscription previously added via addCustomSubscription. No requests are sent by calling this method. Use modifyRoomSubscriptions to resend subscription information.

    Parameters

    • roomId: string

      The room to use the subscription in.

    • name: string

      The name of the subscription. If this name is unknown, the default subscription will be used.

    Returns void

Generated using TypeDoc