Triển khai API Co-Doing

Co-Doing API dùng để đồng bộ hoá dữ liệu tuỳ ý giữa các cuộc họp người tham gia. Đây có thể là bất kỳ dữ liệu nào mà ứng dụng của bạn phụ thuộc vào.

Bạn phải chuyển đổi tuần tự dữ liệu thành Uint8Array để truyền dữ liệu. Để biết thêm thông tin, hãy xem tài liệu tham khảo về thư viện tiêu chuẩn JavaScript.

Nếu bạn không chắc cách chuyển đổi tuần tự dữ liệu, hãy xem các mã mẫu sau.

Hướng dẫn này giải thích cách triển khai API Co-Doing.

Bắt đầu

Để sử dụng API Co-Doing, trước tiên, bạn phải Triển khai tiện ích bổ sung Meet. Sau khi hoàn tất các bước đó, bạn có thể bắt đầu sử dụng API Co-Doing trong tiện ích bổ sung mới.

Để dùng Co-Doing API, hãy bắt đầu bằng cách tải một đối tượng AddonSession, đóng vai trò là điểm bắt đầu cho các hoạt động cùng hoạt động trên Google Meet:

TypeScript

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

Thay thế CLOUD_PROJECT_NUMBER bằng số dự án là dự án Google Cloud của bạn.

Tạo một ứng dụng cùng thực hiện

Để bắt đầu, hãy tạo một CoDoingClient khỏi AddonSession.

Để tạo CoDoingClient, hãy gọi phương thức createCoDoingClient() và cung cấp một CoDoingDelegate .

CoDoingDelegate là cách API Co-Doing cập nhật ứng dụng của bạn mỗi khi ứng dụng có trạng thái mới. Dự kiến, khi thời gian onCoDoingStateChanged() được gọi, ứng dụng của bạn sẽ ngay lập tức áp dụng trạng thái mới.

Mã mẫu sau đây cho biết cách sử dụng 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
    },
  });

Thay thế ACTIVITY_TITLE bằng tiêu đề của hoạt động.

Quản lý trạng thái hiện tại

Khi người dùng thực hiện hành động trong ứng dụng, ứng dụng của bạn sẽ gọi phương thức broadcastStateUpdate() ngay lập tức.

Mã mẫu sau đây cho thấy cách triển khai của Phương thức 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) });
});

Thay thế SOME_STRING bằng trạng thái hiện tại của ứng dụng.