Skip to content

Documentation / @agentick/client-multiplexer / createSharedTransport

Function: createSharedTransport() ​

createSharedTransport(config): SharedTransport

Defined in: client-multiplexer/src/shared-transport.ts:882

@agentick/client-multiplexer

Multi-tab connection multiplexer for Agentick client.

Reduces server connections by electing a leader tab that maintains the SSE connection while other tabs communicate via BroadcastChannel.

Features:

  • Leader election using Web Locks API (instant, reliable)
  • BroadcastChannel fallback for older browsers
  • Automatic failover when leader tab closes
  • Per-tab subscription filtering (each tab only receives its events)
  • Subscription aggregation (leader subscribes to union of all tabs' sessions)

Parameters ​

config ​

SharedTransportConfig

Returns ​

SharedTransport

Example ​

typescript
import { createClient } from '@agentick/client';
import { createSharedTransport } from '@agentick/client-multiplexer';

// Create client with shared transport
const client = createClient({
  baseUrl: '/api',
  transport: createSharedTransport({ baseUrl: '/api', token: 'your-token' }),
});

// Use exactly like a regular client
const session = client.session('main');
session.subscribe(); // Subscribe to events
session.onEvent((event) => console.log(event));

// Send a message
const handle = session.send('Hello!');
await handle.result;

// Check leadership status (optional, for debugging/UI)
const transport = client.getTransport() as SharedTransport | undefined;
console.log('Is leader:', transport?.isLeader);

Released under the ISC License.