ym88659208ym87991671
Работа с комнатами | Документация для разработчиков

Работа с комнатами

Обновлено 28 мая 2024

В этом разделе вы найдете примеры разработки функциональности работы с комнатами.

Проверка существования комнаты

import {
HttpClientFetchError,
HttpClientResponseError,
JazzSdkGetRoomDetailsError,
} from '@salutejs/jazz-sdk-web';

try {
const conference = await jazzClient.conferences.getDetails({
conferenceId,
password,
});
} catch (error) {
if (error instanceof HttpClientFetchError) {
// Сетевая ошибка, ошибка доступа к интернету
}

if (error instanceof HttpClientResponseError<JazzSdkGetRoomDetailsError>) {
// Серверная ошибка, ответ от сервера с ошибкой
}
}

Подключение к комнате

Перед подключением к конференции нужно инициализировать JazzSdk и JazzClient.

Выполение функции join с заданными параметрами создает экземпляр JazzRoom. После этого начинается подключения к комнате:

  • проверяется существование комнаты;
  • выполняется проверка доступов;
  • поднимается веб-сокет соединение и вход в комнату.

На каждое событие можно подписаться в момент создания экземпляра JazzRoom или подписаться на событие добавления комнаты в JazzClient.

Пример:

import {
createJazzClient,
createJazzWebSdk,
JazzSdk,
JazzClient,
} from '@salutejs/jazz-sdk-web';

const jazzSdk: JazzSdk = await createJazzWebSdk();

const jazzClient: JazzClient = await createJazzClient(jazzSdk, {
serverUrl: 'YOUR_JAZZ_SERVER_ADDRESS',
});

const room = jazzClient.conferences.join({
conferenceId,
password,
});

Обработка ошибок подключения к комнате

Авторизация при подключении к комнате обязательна.

import { AuthorizationRequiredError } from '@salutejs/jazz-sdk-web';

try {
const room = jazzClient.conferences.join({
conferenceId,
password,
});
} catch (error) {
if (error instanceof AuthorizationRequiredError) {
// Доступ запрещен, необходимо авторизоваться
}
}

Ожидание подключения к комнате

try {
await room.ready();
} catch () {
throw new Error('Failed to connect to conference');
}

Метод room.ready() может принимать ожидаемый статус в качестве аргумента. Пример ниже делает то же самое, что и предыдущий пример:

try {
await room.ready('connected');
} catch () {
throw new Error('Failed to connect to conference');
}

Ошибки подключения к комнате

Можно обрабатывать следующие ошибки:

Пример обработки:

import { JazzRoomError } from '@salutejs/jazz-sdk-web';

try {
await room.ready();
} catch (error) {
if (error instanceof JazzRoomError) {
// JazzRoomError.reason = ExceededMaxSdkMeetingsError | NetworkError | OpenConnectionError;
}
}

Ошибки во время работы комнаты

При работе комнаты могут возникать следующие ошибки:

Пример обработки:

import { handleEvent } from '@salutejs/jazz-sdk-web';

const unsubscribe = handleEvent(room.event$, 'error', ({ payload }) => {
console.log(payload.error);
});

unsubscribe();

Выход из комнаты

Выполнение функции leave закрывает веб-сокет соединение и завершает работу запущенных процессов.

await room.leave();
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.