A API Co-Doing é usada para sincronizar dados arbitrários entre os participantes da reunião. Podem ser quaisquer dados de que seu app dependa.
Você precisa serializar os dados para um Uint8Array
para que eles sejam transmitidos. Para mais
informações, consulte a biblioteca padrão JavaScript
como referência.
Se você não tiver certeza de como serializar os dados, confira os exemplos de código seguindo.
Este guia explica como implementar a API Co-Doing.
Primeiros passos
Para usar a API Co-Doing, primeiro você deve implantar um Complemento do Meet. Uma vez você concluir essas etapas, poderá começar a usar a API Co-Doing no novo complemento.
Para usar a API Co-Doing, comece com uma
objeto AddonSession
,
que serve como ponto de entrada para atividades colaborativas no Google Meet:
TypeScript
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
Substitua CLOUD_PROJECT_NUMBER pelo número do projeto de seu projeto do Google Cloud.
Criar um cliente de atividades colaborativas
Para começar, crie um
CoDoingClient
do AddonSession
.
Para criar um CoDoingClient
, chame o método
createCoDoingClient()
e forneça um objeto
CoDoingDelegate
.
O CoDoingDelegate
é como a API Co-Doing
atualiza o app sempre que há um novo estado disponível. Espera-se que, quando
o método
onCoDoingStateChanged()
for chamado, o app aplique imediatamente o novo estado.
O exemplo de código abaixo mostra como usar a API Co-Doing:
TypeScript
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
},
});
Substitua ACTIVITY_TITLE pelo título da sua atividade.
Gerenciar o estado atual
Quando os usuários realizam uma ação no app, é esperado que ele chame imediatamente
o método
broadcastStateUpdate()
.
O exemplo de código a seguir mostra uma implementação da
Método broadcastStateUpdate()
:
TypeScript
const myState: MyState = {
someString: "SOME_STRING",
someNumber: 0
};
document.getElementById('some-button').onClick(() => {
myState.someNumber = myState.someNumber + 1;
coDoingClient.broadcastStateUpdate({ bytes: toBytes(myState) });
});
Substitua SOME_STRING pelo estado atual do app.