Client API Reference

The Client object is the main entry point for interacting with Ember Link’s real-time collaboration platform. It is able to create Channels that connect to the specified URL, handles authentication and multi tenant support.


Creating a Client

To create a new instance of Client, you must pass a configuration object of type CreateClientOptions.

CreateClientOptions

interface CreateClientOptions {
	baseUrl: string;
	authEndpoint?: AuthEndpoint;
	multiTenant?: {
		tenantId: string;
	};
	jwtSignerPublicKey?: string;
}
NameTypeRequiredDescription
baseUrlstringThe base URL of your Ember Link backend.
authEndpointAuthEndpointConfiguration for authentication.
└ URLstringA URL for the authentication endpoint.
└ functionfunctionA function that returns a signed JWT for authentication.
multiTenantObjectConfiguration for multi-tenant setup.
└ tenantIdstringThe tenant ID used in a multi-tenant setup.
jwtSignerPublicKeystringPublic key used to verify JWTs from your auth provider.

Methods

type JoinChannel<
	P extends Record<string, unknown> = DefaultPresence,
	C extends Record<string, unknown> = DefaultCustomMessageData
> = <S extends IStorageProvider>(
	channelName: string,
	options?: ChannelConfig<S, P>['options']
) => { channel: Channel<P, C>; leave: () => void };

channelName: The name of the channel to join.

options: An optional configuration for joining the channel.

Returns a Channel object and a leave function to leave the channel

Type Arguments: In most cases you shouldn’t have to manually pass the type arguments. See global types for more information.

Example Usage

import { Client } from '@ember-link/core';

const client = new Client({
	baseUrl: 'https://localhost:9000',
	multiTenant: { tenantId: 'team-123' }
});

const { channel, leave } = await client.joinChannel('editor-room', {
	initialPresence: { username: 'Julia' }
});

// Call leave when you are done with the channel
leave();