Mengimplementasikan Co-Doing API

Co-Doing API digunakan untuk menyinkronkan data arbitrer antara rapat peserta. Data ini dapat berupa data apa pun yang diperlukan aplikasi Anda.

Anda harus melakukan serialisasi data ke Uint8Array agar dapat dikirimkan. Untuk informasi selengkapnya, lihat referensi library standar JavaScript.

Jika Anda tidak yakin cara melakukan serialisasi data Anda, tinjau contoh kode mengikuti.

Panduan ini menjelaskan cara menerapkan Co-Doing API.

Mulai

Untuk menggunakan Co-Doing API, Anda harus terlebih dahulu Membangun Add-on Meet. Satu kali telah menyelesaikan langkah-langkah tersebut, Anda dapat mulai menggunakan Co-Doing API dari dalam add-on baru Anda.

Untuk menggunakan Co-Doing API, mulailah dengan mendapatkan Objek AddonSession, yang berfungsi sebagai titik entri untuk aktivitas bersama Google Meet:

TypeScript

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

Ganti CLOUD_PROJECT_NUMBER dengan nomor project project Google Cloud Anda.

Membuat klien rekan kerja

Untuk memulai, buat objek CoDoingClient dari AddonSession Anda.

Untuk membuat CoDoingClient, panggil metode createCoDoingClient() dan menyediakan CoDoingDelegate .

CoDoingDelegate adalah cara Co-Doing API memperbarui aplikasi Anda setiap kali ada status baru yang tersedia. Diharapkan bahwa, ketika tindakan onCoDoingStateChanged() dipanggil, aplikasi Anda akan langsung menerapkan status baru.

Contoh kode berikut menunjukkan cara menggunakan Co-Doing API:

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
    },
  });

Ganti ACTIVITY_TITLE dengan judul aktivitas Anda.

Kelola status saat ini

Saat pengguna melakukan tindakan dalam aplikasi, diharapkan aplikasi Anda langsung memanggil broadcastStateUpdate() .

Contoh kode berikut menunjukkan implementasi Metode 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) });
});

Ganti SOME_STRING dengan status aplikasi saat ini.