Automerge Repo - v2.5.2-alpha.0
    Preparing search index...

    Class Presence<State, DocType>

    Presence encapsulates ephemeral state communication for a specific doc handle. It tracks caller-provided local state and broadcasts that state to all peers. It sends periodic heartbeats when there are no state updates.

    It also tracks ephemeral state broadcast by peers and emits events when peers send ephemeral state updates (see PresenceEvents).

    Presence starts out in an inactive state. Call start and stop to activate and deactivate it.

    Type Parameters

    • State extends Record<string, any>
    • DocType = any

    Hierarchy

    • EventEmitter<PresenceEvents>
      • Presence
    Index

    Constructors

    • Create a new Presence to share ephemeral state with peers.

      Type Parameters

      • State extends Record<string, any>
      • DocType = any

      Parameters

      • config: { deviceId?: unknown; handle: DocHandle<DocType>; userId?: unknown }
        • OptionaldeviceId?: unknown

          Our device id (like userId, this is unverified; peers can send anything)

        • handle: DocHandle<DocType>
        • OptionaluserId?: unknown

          Our user id (this is unverified; peers can send anything)

      Returns Presence<State, DocType>

    Properties

    deviceId?: unknown
    userId?: unknown
    prefixed: string | boolean

    Accessors

    • get running(): boolean

      Whether this Presence is currently active. See start and stop.

      Returns boolean

    Methods

    • Type Parameters

      • T extends keyof PresenceEvents

      Parameters

      • event: T
      • fn: (...args: ArgumentMap<PresenceEvents>[Extract<T, keyof PresenceEvents>]) => void
      • Optionalcontext: any

      Returns this

    • Update state for the specific channel, and broadcast new state to all peers.

      Type Parameters

      • Channel extends string | number | symbol

      Parameters

      Returns void

    • Calls each of the listeners registered for a given event.

      Type Parameters

      • T extends keyof PresenceEvents

      Parameters

      • event: T
      • ...args: ArgumentMap<PresenceEvents>[Extract<T, keyof PresenceEvents>]

      Returns boolean

    • Return an array listing the events for which the emitter has registered listeners.

      Returns (keyof PresenceEvents)[]

    • Return a view of current local state.

      Returns undefined | State

    • Return the number of listeners listening to a given event.

      Parameters

      • event: keyof PresenceEvents

      Returns number

    • Return the listeners registered for a given event.

      Type Parameters

      • T extends keyof PresenceEvents

      Parameters

      • event: T

      Returns (
          (
              ...args: ArgumentMap<PresenceEvents>[Extract<T, keyof PresenceEvents>],
          ) => void
      )[]

    • Type Parameters

      • T extends keyof PresenceEvents

      Parameters

      • event: T
      • Optionalfn: (...args: ArgumentMap<PresenceEvents>[Extract<T, keyof PresenceEvents>]) => void
      • Optionalcontext: any
      • Optionalonce: boolean

      Returns this

    • Add a listener for a given event.

      Type Parameters

      • T extends keyof PresenceEvents

      Parameters

      • event: T
      • fn: (...args: ArgumentMap<PresenceEvents>[Extract<T, keyof PresenceEvents>]) => void
      • Optionalcontext: any

      Returns this

    • Add a one-time listener for a given event.

      Type Parameters

      • T extends keyof PresenceEvents

      Parameters

      • event: T
      • fn: (...args: ArgumentMap<PresenceEvents>[Extract<T, keyof PresenceEvents>]) => void
      • Optionalcontext: any

      Returns this

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

      Parameters

      • Optionalevent: keyof PresenceEvents

      Returns this

    • Remove the listeners of a given event.

      Type Parameters

      • T extends keyof PresenceEvents

      Parameters

      • event: T
      • Optionalfn: (...args: ArgumentMap<PresenceEvents>[Extract<T, keyof PresenceEvents>]) => void
      • Optionalcontext: any
      • Optionalonce: boolean

      Returns this

    • Start listening to ephemeral messages on the handle, broadcast initial state to peers, and start sending heartbeats.

      Parameters

      Returns void

    • Stop this Presence: broadcast a "goodbye" message (when received, other peers will immediately forget the sender), stop sending heartbeats, and stop listening to ephemeral-messages broadcast from peers.

      This can be used with browser events like "pagehide" or "visibilitychange" to stop sending and receiving updates when not active.

      Returns void