← Cloudflare Realtime / realtime / realtimekit / core
Метаданные встречи
Все метаданные, связанные со встречей, хранятся в meeting.meta. Сюда входит важная информация о состоянии встречи, ее типе и подключениях.
Доступные метаданные
Выберите фреймворк в зависимости от платформы, для которой вы разрабатываете приложение.
meeting.meta объект содержит следующие свойства:
viewType- Указывает тип встречи. Возможные значения:WEBINAR,GROUP_CALLroomType- Указывает, является ли встреча групповым звонком или вебинаромmeetingTitle- Название встречиmeetingStartedTimestamp- Временная метка начала встречиmediaState- Состояние медиасоединенияsocketState- Состояние сокет-соединения
meeting.meta объект содержит следующие свойства:
viewType- Указывает тип встречи. Возможные значения:WEBINAR,GROUP_CALLroomType- Указывает, является ли встреча групповым звонком или вебинаромmeetingTitle- Название встречиmeetingStartedTimestamp- Временная метка начала встречиmediaState- Состояние медиасоединенияsocketState- Состояние сокет-соединения
meeting.meta объект содержит следующие свойства:
meetingId- Уникальный идентификатор встречиmeetingTitle- Название встречиmeetingStartedTimestamp- Временная метка начала встречиmeetingType- Указывает тип встречи, который может быть одним из следующих:GROUP_CALL,WEBINAR,AUDIO_ROOM, илиLIVESTREAMизRtkMeetingTypeenummeetingConfig- Конфигурация встречи, содержащая настройки аудио и видеоmeetingState- Состояние встречи типаRtkMeetingStateauthToken- Токен аутентификации пользователя для встречиselfActiveTab- Информация о текущей активной вкладке локального участникаmediaConnectionState- Текущее состояние медиасоединенияsocketConnectionState- Текущее состояние сокет-соединения
meeting.meta объект содержит следующие свойства:
meetingId- Уникальный идентификатор встречиmeetingTitle- Название встречиmeetingStartedTimestamp- Временная метка начала встречиmeetingType- Указывает тип встречи, который может быть одним из следующих:.groupCall,.webinar,.audioRoom, или.livestreamизRtkMeetingTypeenummeetingConfig- Конфигурация встречи, содержащая настройки аудио и видеоmeetingState- Состояние встречи типаRtkMeetingStateauthToken- Токен аутентификации пользователя для встречиselfActiveTab- Информация о текущей активной вкладке локального участникаmediaConnectionState- Текущее состояние медиасоединенияsocketConnectionState- Текущее состояние сокет-соединения
meeting.meta объект содержит следующие свойства:
viewType- Указывает тип встречи. Возможные значения:WEBINAR,GROUP_CALLroomType- Указывает, является ли встреча групповым звонком или вебинаромmeetingTitle- Название встречиmeetingStartedTimestamp- Временная метка начала встречиmediaState- Состояние медиасоединенияsocketState- Состояние сокет-соединения
Доступ к метаданным встречи
Чтобы получить доступ к метаданным встречи, используйте meeting.meta объект.
// Destructure the metadata to get meetingTitle
const { meetingTitle } = meeting.meta;
if (meeting.self.roomJoined) {
console.log(
`The local user has joined a meeting with title ${meetingTitle}.`,
);
}import { useRealtimeKitSelector } from "@cloudflare/realtimekit-react";
import { useEffect } from "react";
function MeetingInfo() {
const [meetingTitle, roomJoined] = useRealtimeKitSelector((m) => [
m.meta.meetingTitle,
m.self.roomJoined,
]);
useEffect(() => {
if (roomJoined) {
console.log(
`The local user has joined a meeting with title ${meetingTitle}.`,
);
}
}, [roomJoined, meetingTitle]);
return null;
}val meetingTitle = meeting.meta.meetingTitlelet meetingTitle = meeting.meta.meetingTitleimport { useRealtimeKitSelector } from "@cloudflare/realtimekit-react-native";
import { useEffect } from "react";
const [meetingTitle, roomJoined] = useRealtimeKitSelector((m) => [
m.meta.meetingTitle,
m.self.roomJoined,
]);
useEffect(() => {
if (roomJoined) {
console.log(
`The local user has joined a meeting with title ${meetingTitle}.`,
);
}
}, [roomJoined, meetingTitle]);События соединения
meta объект также генерирует события, указывающие на изменения состояния подключения встречи.
Обновления медиасоединения
Обновления медиасоединения (WebRTC-соединения, используемого для передачи самих медиаданных) отправляются через mediaConnectionUpdate событие.
meeting.meta.on("mediaConnectionUpdate", ({ transport, state }) => {
// transport - 'consuming' | 'producing'
// state - 'new' | 'connecting' | 'connected' | 'disconnected' | 'reconnecting' | 'failed'
console.log(`Media connection ${transport} is now ${state}`);
}); mediaConnectionUpdate событие содержит:
transport- Либо'consuming'(получение медиаданных) или'producing'(отправка медиаданных)state- Состояние соединения:'new','connecting','connected','disconnected','reconnecting', или'failed'
Обновления медиасоединения (WebRTC-соединения, используемого для передачи самих медиаданных) отправляются через mediaConnectionUpdate событие.
import { useRealtimeKitClient } from "@cloudflare/realtimekit-react";
import { useEffect } from "react";
function MediaConnectionMonitor() {
const [meeting] = useRealtimeKitClient();
useEffect(() => {
if (meeting) {
const handleMediaConnection = ({ transport, state }) => {
// transport - 'consuming' | 'producing'
// state - 'new' | 'connecting' | 'connected' | 'disconnected' | 'reconnecting' | 'failed'
console.log(`Media connection ${transport} is now ${state}`);
};
meeting.meta.on("mediaConnectionUpdate", handleMediaConnection);
return () => {
meeting.meta.off("mediaConnectionUpdate", handleMediaConnection);
};
}
}, [meeting]);
return null;
} mediaConnectionUpdate событие содержит:
transport- Либо'consuming'(получение медиаданных) или'producing'(отправка медиаданных)state- Состояние соединения:'new','connecting','connected','disconnected','reconnecting', или'failed'
Текущее состояние медиасоединения можно получить прямо из метаданных.
val mediaConnectionState = meeting.meta.mediaConnectionStateТекущее состояние медиасоединения можно получить прямо из метаданных.
let mediaConnectionState = meeting.meta.mediaConnectionStateОбновления медиасоединения (WebRTC-соединения, используемого для передачи самих медиаданных) отправляются через mediaConnectionUpdate событие.
meeting.meta.on("mediaConnectionUpdate", ({ transport, state }) => {
// transport - 'consuming' | 'producing'
// state - 'new' | 'connecting' | 'connected' | 'disconnected' | 'reconnecting' | 'failed'
console.log(`Media connection ${transport} is now ${state}`);
}); mediaConnectionUpdate событие содержит:
transport- Либо'consuming'(получение медиаданных) или'producing'(отправка медиаданных)state- Состояние соединения:'new','connecting','connected','disconnected','reconnecting', или'failed'
Обновления подключения Socket
Обновления WebSocket-соединения (используемого для чата, опросов и другой базовой сигнализации) отправляются через socketConnectionUpdate событие.
meeting.meta.on(
"socketConnectionUpdate",
({ state, reconnectionAttempt, reconnected }) => {
// state - 'connected' | 'disconnected' | 'reconnecting' | 'failed'
console.log(`Socket connection is now ${state}`);
if (reconnectionAttempt) {
console.log(`Reconnection attempt: ${reconnectionAttempt}`);
}
if (reconnected) {
console.log("Successfully reconnected");
}
},
); socketConnectionUpdate событие содержит:
state- Состояние соединения:'connected','disconnected','reconnecting', или'failed'reconnectionAttempt- Количество выполненных попыток переподключения (при переподключении)reconnected- Логическое значение, указывающее, было ли соединение успешно восстановлено
Обновления WebSocket-соединения (используемого для чата, опросов и другой базовой сигнализации) отправляются через socketConnectionUpdate событие.
import { useRealtimeKitClient } from "@cloudflare/realtimekit-react";
import { useEffect } from "react";
function SocketConnectionMonitor() {
const [meeting] = useRealtimeKitClient();
useEffect(() => {
if (meeting) {
const handleSocketConnection = ({
state,
reconnectionAttempt,
reconnected,
}) => {
// state - 'connected' | 'disconnected' | 'reconnecting' | 'failed'
console.log(`Socket connection is now ${state}`);
if (reconnectionAttempt) {
console.log(`Reconnection attempt: ${reconnectionAttempt}`);
}
if (reconnected) {
console.log("Successfully reconnected");
}
};
meeting.meta.on("socketConnectionUpdate", handleSocketConnection);
return () => {
meeting.meta.off("socketConnectionUpdate", handleSocketConnection);
};
}
}, [meeting]);
return null;
} socketConnectionUpdate событие содержит:
state- Состояние соединения:'connected','disconnected','reconnecting', или'failed'reconnectionAttempt- Количество выполненных попыток переподключения (при переподключении)reconnected- Логическое значение, указывающее, было ли соединение успешно восстановлено
Текущее состояние соединения сокета можно получить прямо из метаданных.
val socketConnectionState = meeting.meta.socketConnectionStateТекущее состояние соединения сокета можно получить прямо из метаданных.
let socketConnectionState = meeting.meta.socketConnectionStateОбновления WebSocket-соединения (используемого для чата, опросов и другой базовой сигнализации) отправляются через socketConnectionUpdate событие.
meeting.meta.on(
"socketConnectionUpdate",
({ state, reconnectionAttempt, reconnected }) => {
// state - 'connected' | 'disconnected' | 'reconnecting' | 'failed'
console.log(`Socket connection is now ${state}`);
if (reconnectionAttempt) {
console.log(`Reconnection attempt: ${reconnectionAttempt}`);
}
if (reconnected) {
console.log("Successfully reconnected");
}
},
); socketConnectionUpdate событие содержит:
state- Состояние соединения:'connected','disconnected','reconnecting', или'failed'reconnectionAttempt- Количество выполненных попыток переподключения (при переподключении)reconnected- Логическое значение, указывающее, было ли соединение успешно восстановлено
Следующие шаги
Связанные темы:
- Разбор объекта встречи - Исчерпывающее описание объекта встречи
- Жизненный цикл сессии - Изучение состояний встречи и переходов между ними