API Co-Doing используется для синхронизации произвольных данных между участниками собрания. Это могут быть любые данные, от которых зависит ваше приложение.
Вы должны сериализовать данные в Uint8Array
, чтобы их можно было передать. Дополнительную информацию см. в справочнике по стандартной библиотеке JavaScript .
Если вы не знаете, как сериализовать данные, просмотрите приведенные ниже примеры кода.
В этом руководстве объясняется, как реализовать API совместного выполнения.
Начать
Чтобы использовать API совместного выполнения, сначала необходимо создать надстройку Meet . Выполнив эти шаги, вы можете начать использовать API совместного выполнения в новом дополнении.
Чтобы использовать Co-Doing API, начните с получения AddonSession
, который служит точкой входа для совместной деятельности:
Машинопись
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
Создать клиент CoDoing
Для начала создайте CoDoingClient
из вашего AddonSession
.
Чтобы создать CoDoingClient
, вызовите метод AddonSession.createCoDoingClient
и укажите CoDoingDelegate
.
CoDoingDelegate
— это то, как Co-Doing API обновляет ваше приложение всякий раз, когда у него появляется новое доступное состояние. Ожидается, что при вызове метода CoDoingDelegate.onCoDoingStateChanged
ваше приложение немедленно применит новое состояние.
В следующем примере кода показано, как использовать API совместного выполнения:
Машинопись
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 newState to your ongoing CoDoing activity
},
});
Замените ACTIVITY_TITLE названием вашего мероприятия.
Управление текущим состоянием
Ожидается, что когда пользователи выполняют какие-либо действия в вашем приложении, ваше приложение немедленно вызывает метод CoDoingClient.broadcastStateUpdate
.
В следующем примере кода показана реализация CoDoingClient.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 текущим состоянием приложения.