Google Meet Live Share Co-Doing API, toplantı katılımcıları arasında rastgele verileri senkronize etmek için kullanılır. Bu, uygulamanızın bağımlı olduğu herhangi bir veri olabilir.
İletilmesi için verileri Uint8Array
olacak şekilde serileştirmeniz gerekir. Daha fazla bilgi için JavaScript standart kitaplığı referansına bakın.
Verilerinizi nasıl serileştireceğinizden emin değilseniz aşağıdaki kod örneklerini inceleyin.
Bu kılavuzda, Co-Doing API'nin nasıl uygulanacağı açıklanmaktadır.
CoDoingClient
oluşturun
Başlamak için Başlarken bölümünde oluşturduğunuz AddonSession
bölümünden bir CoDoingClient
oluşturun.
CoDoingClient
oluşturmak için AddonSession.createCoDoingClient
yöntemini çağırın ve bir CoDoingDelegate
sağlayın.
CoDoingDelegate
, Co-Doing API'nin yeni bir durumu olduğunda uygulamanızı nasıl güncelleyeceğini belirtir. CoDoingDelegate.onCoDoingStateChanged
yöntemi çağrıldığında uygulamanızın yeni durumu hemen uygulaması beklenir.
Aşağıdaki kod örneğinde, Co-Doing API'nin nasıl kullanılacağı gösterilmektedir:
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 newState to your ongoing CoDoing activity
},
});
ACTIVITY_TITLE yerine etkinliğinizin başlığını yazın.
Mevcut durumu yönet
Kullanıcılar uygulamanızda bir işlem yaptığında uygulamanızın hemen CoDoingClient.broadcastStateUpdate
çağrısı yapması beklenir.
Aşağıdaki kod örneğinde CoDoingClient.broadcastStateUpdate
uygulaması gösterilmektedir:
TypeScript
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 değerini, uygulamanın mevcut durumuyla değiştirin.