Co-Doing API'sini uygulayın

Co-Doing API, toplantı katılımcıları arasında rastgele verileri senkronize etmek için kullanılır. Bu, uygulamanızın bağlı olduğu herhangi bir veri olabilir.

Verilerin iletilebilmesi için Uint8Array olarak serileştirilmesi gerekir. Daha fazla bilgi için JavaScript standart kitaplığı referansı bölümüne 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.

Başlayın

Co-Doing API'yi kullanmak için önce Meet eklentisi dağıtmanız gerekir. Bu adımları tamamladıktan sonra yeni eklentinizde Co-Doing API'yi kullanmaya başlayabilirsiniz.

Co-Doing API'yi kullanmak için öncelikle Google Meet'teki ortak etkinliklerin giriş noktası olarak işlev gören bir AddonSession nesnesi alın:

TypeScript

const session = await window.meet.addon.createAddonSession({
    cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});

CLOUD_PROJECT_NUMBER kısmını, Google Cloud projenizin proje numarasıyla değiştirin.

Birlikte çalışma istemcisi oluşturma

Başlamak için AddonSession öğenizden bir CoDoingClient nesnesi oluşturun.

CoDoingClient oluşturmak için createCoDoingClient() yöntemini çağırın ve CoDoingDelegate nesnesi sağlayın.

CoDoingDelegate, Co-Doing API'nin yeni bir durum olduğunda uygulamanızı güncelleme yöntemidir. 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 the new state to your ongoing CoDoing activity
    },
  });

ACTIVITY_TITLE yerine etkinliğinizin başlığını girin.

Mevcut durumu yönetme

Kullanıcılar uygulamanızda işlem yaptığında uygulamanızın broadcastStateUpdate() yöntemini hemen çağırması beklenir.

Aşağıdaki kod örneğinde, broadcastStateUpdate() yönteminin bir 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 yerine uygulamanın mevcut durumunu girin.