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

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

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

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

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

یک CoDoingClient ایجاد کنید

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

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

CoDoingDelegate روشی است که Co-Doing API برنامه شما را هر زمان که وضعیت جدیدی در دسترس باشد به روز می کند. انتظار می رود زمانی که متد CoDoingDelegate.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 newState to your ongoing CoDoing activity
    },
  });

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

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

زمانی که کاربران در برنامه شما اقدامی انجام می دهند، انتظار می رود که برنامه شما بلافاصله با CoDoingClient.broadcastStateUpdate تماس بگیرد.

نمونه کد زیر اجرای CoDoingClient.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 با وضعیت فعلی برنامه جایگزین کنید.