A API Co-Doing é usada para sincronizar dados arbitrários entre os participantes da reunião. Podem ser quaisquer dados de que o app depende.
É necessário serializar os dados para um Uint8Array
para que eles sejam transmitidos. Para mais
informações, consulte a referência da biblioteca padrão
do JavaScript.
Se você não souber como serializar seus dados, consulte os exemplos de código a seguir.
Este guia explica como implementar a API Co-Doing.
Primeiros passos
Para usar a API Co-Doing, primeiro você precisa implantar um complemento do Meet. Depois de concluir essas etapas, você poderá começar a usar a API Co-Doing no seu novo complemento.
Para usar a API Co-Doing, comece recebendo um objeto
AddonSession
,
que serve como ponto de entrada para as atividades colaborativas do Google Meet:
TypeScript
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
Substitua CLOUD_PROJECT_NUMBER pelo número do projeto do Google Cloud.
Criar um cliente de co-doing
Para começar, crie um objeto
CoDoingClient
com base no AddonSession
.
Para criar um CoDoingClient
, chame o método
createCoDoingClient()
e forneça um objeto
CoDoingDelegate
.
O CoDoingDelegate
é como a API Co-Doing
atualiza seu app sempre que um novo estado está 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 do
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.