Triển khai API Co-Doing

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

Bạn phải chuyển đổi 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 chuẩn JavaScript.

Nếu bạn chưa biết cách chuyển đổi dữ liệu của mình thành chuỗi, hãy xem các mẫu mã sau.

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

Bắt đầu

Để sử dụng Co-Doing API, trước tiên, bạn phải Triển khai một 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 Co-Doing API trong tiện ích bổ sung mới của mình.

Để sử dụng Co-Doing API, hãy bắt đầu bằng cách lấy một đối tượng AddonSession. Đối tượng này đóng vai trò là điểm truy cập cho các hoạt động cùng nhau trong Google Meet:

TypeScript

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

Thay thế CLOUD_PROJECT_NUMBER bằng số dự án của dự án trên Google Cloud.

Tạo một khách hàng cùng thực hiện

Để bắt đầu, hãy tạo một đối tượng CoDoingClient từ AddonSession.

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

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

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

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 của bạn, ứng dụng của bạn dự kiến sẽ gọi ngay phương thức broadcastStateUpdate().

Mẫu mã sau đây cho thấy cách triển khai 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.