API Co-Doing را پیاده سازی کنید

Co-Doing API برای همگام سازی داده های دلخواه بین شرکت کنندگان جلسه استفاده می شود. این می تواند هر داده ای باشد که برنامه شما به آن وابسته است.

شما باید داده ها را به یک Uint8Array سریال کنید تا انتقال داده شود. برای اطلاعات بیشتر، به مرجع کتابخانه استاندارد جاوا اسکریپت مراجعه کنید.

اگر مطمئن نیستید که چگونه داده های خود را سریالی کنید، نمونه کدهای زیر را بررسی کنید.

این راهنما نحوه پیاده سازی Co-Doing API را توضیح می دهد.

شروع کنید

برای استفاده از Co-Doing API، ابتدا باید یک افزونه Meet بسازید . هنگامی که این مراحل را کامل کردید، می توانید از داخل افزونه جدید خود از Co-Doing API استفاده کنید.

برای استفاده از Co-Doing API، با دریافت یک شی AddonSession ، که به عنوان نقطه ورود برای فعالیت های مشترک Google Meet عمل می کند، شروع کنید:

TypeScript

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

CLOUD_PROJECT_NUMBER با شماره پروژه پروژه Google Cloud خود جایگزین کنید.

یک مشتری مشارکتی ایجاد کنید

برای شروع، یک شی CoDoingClient از AddonSession خود ایجاد کنید.

برای ایجاد یک CoDoingClient ، متد createCoDoingClient() را فراخوانی کنید و یک شی CoDoingDelegate ارائه دهید.

CoDoingDelegate روشی است که Co-Doing API برنامه شما را هر زمان که وضعیت جدیدی در دسترس باشد به روز می کند. انتظار می رود که وقتی متد onCoDoingStateChanged() فراخوانی می شود، برنامه شما بلافاصله حالت جدید را اعمال کند.

نمونه کد زیر نحوه استفاده از 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
    },
  });

عنوان فعالیت خود را جایگزین ACTIVITY_TITLE کنید.

وضعیت فعلی را مدیریت کنید

هنگامی که کاربران در برنامه شما اقدامی انجام می دهند، انتظار می رود که برنامه شما فوراً متد broadcastStateUpdate() را فراخوانی کند.

نمونه کد زیر پیاده سازی متد 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) });
});

SOME_STRING با وضعیت فعلی برنامه جایگزین کنید.