API Co-Doing используется для синхронизации произвольных данных между участниками совещания. Это могут быть любые данные, от которых зависит ваше приложение.
Для передачи данных необходимо сериализовать их в массив типа Uint8Array . Дополнительную информацию см. в справочнике стандартной библиотеки JavaScript .
Если вы не уверены, как сериализовать данные, ознакомьтесь с приведенными ниже примерами кода.
В этом руководстве объясняется, как реализовать API Co-Doing.
Начать
Для использования API Co-Doing сначала необходимо развернуть дополнение Meet . После выполнения этих шагов вы сможете начать использовать API Co-Doing из своего нового дополнения.
Для использования API Co-Doing сначала получите объект AddonSession , который служит точкой входа для совместной работы в Google Meet:
Машинопись
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
Замените CLOUD_PROJECT_NUMBER на номер вашего проекта в Google Cloud.
Создайте клиента для совместной работы.
Для начала создайте объект CoDoingClient из вашего AddonSession .
Для создания объекта CoDoingClient вызовите метод createCoDoingClient() и укажите объект CoDoingDelegate .
Делегат CoDoingDelegate отвечает за обновление состояния вашего приложения через API Co-Doing. Предполагается, что при вызове метода onCoDoingStateChanged() ваше приложение немедленно применит новое состояние.
Приведённый ниже пример кода демонстрирует использование API Co-Doing:
Машинопись
interface MyState {
someString: string;
someNumber: number;
}
/**
* Serialize/deserialize using JSON.stringify
* You can use any method you want; this is included for as an example
*/
function toBytes(state: MyState): Uint8Array {
return new TextEncoder().encode(JSON.stringify(state));
}
function fromBytes(bytes: Uint8Array): MyState {
return JSON.parse(new TextDecoder().decode(bytes)) as MyState;
}
const coDoingClient = await addonSession.createCoDoingClient({
activityTitle: "ACTIVITY_TITLE",
onCoDoingStateChanged(coDoingState: CoDoingState) {
const newState = fromBytes(coDoingState.bytes);
// This function should apply the new state to your ongoing CoDoing activity
},
});
Замените ACTIVITY_TITLE на название вашего мероприятия.
Управление текущим состоянием
Когда пользователи совершают действия в вашем приложении, ожидается, что приложение немедленно вызовет метод broadcastStateUpdate() .
Приведённый ниже пример кода демонстрирует реализацию метода broadcastStateUpdate() :
Машинопись
const myState: MyState = {
someString: "SOME_STRING",
someNumber: 0
};
document.getElementById('some-button').onClick(() => {
myState.someNumber = myState.someNumber + 1;
coDoingClient.broadcastStateUpdate({ bytes: toBytes(myState) });
});
Замените SOME_STRING на текущее состояние приложения.