@dxos/client
    Preparing search index...

    @dxos/client

    @dxos/client

    Core DXOS Client API.

    pnpm i @dxos/client
    

    Create a client object like this:

    import { Client } from '@dxos/client';
    const client = new Client();

    Your ideas, issues, and code are most welcome. Please take a look at our community code of conduct, the issue guide, and the PR contribution guide.

    License: MIT Copyright 2022 © DXOS

    sequenceDiagram
        participant C1 as Client 1 (Leader)
        participant Coord as Coordinator (SharedWorker)
        participant W as Worker (Dedicated)
        participant C2 as Client 2 (Follower)
    
        Note over C1, W: 1. Leader Initialization
        C1->>Coord: Connect
        C1->>C1: Request Leader Lock (Success)
        C1->>W: Spawn Worker
        W->>C1: msg: listening
        Note right of C1: Wait for 'listening' to ensure worker
    doesn't miss subsequent messages C1->>W: msg: init (Client1_ID) W->>C1: msg: ready (LivenessKey) C1->>Coord: msg: new-leader (Leader_ID) Note over C1, W: 2. Client 1 Self-Connection C1->>Coord: msg: request-port (Client1_ID) Note right of Coord: Maps Client1_ID -> C1 Port Coord->>C1: msg: request-port (Client1_ID) Note right of C1: Leader acts on request C1->>W: msg: start-session (Client1_ID) W->>C1: msg: session (Client1_ID, Ports) C1->>Coord: msg: provide-port (Client1_ID, Ports) Coord->>C1: msg: provide-port (Client1_ID, Ports) Note right of C1: Client 1 Services Connected Note over C2, W: 3. Client 2 Connection C2->>Coord: Connect C2->>C2: Request Leader Lock (Waits/Fails) loop Polling C2->>Coord: msg: request-port (Client2_ID) end Note right of Coord: Maps Client2_ID -> C2 Port Coord->>C1: msg: request-port (Client2_ID) Note right of C1: Leader acts on request C1->>W: msg: start-session (Client2_ID) W->>C1: msg: session (Client2_ID, Ports) C1->>Coord: msg: provide-port (Client2_ID, Ports) Coord->>C2: msg: provide-port (Client2_ID, Ports) Note right of C2: Client 2 Services Connected