Co-डूइंग एपीआई लागू करना

Google Meet Live Share Co-ing API का इस्तेमाल, मीटिंग में हिस्सा लेने वाले लोगों के बीच आर्बिट्रेरी डेटा को सिंक करने के लिए किया जाता है. यह आपके ऐप्लिकेशन पर निर्भर कोई भी डेटा हो सकता है.

डेटा को ट्रांसमिट करने के लिए, आपको डेटा को Uint8Array में क्रम से लगाना होगा. ज़्यादा जानकारी के लिए, JavaScript की स्टैंडर्ड लाइब्रेरी का रेफ़रंस देखें.

अगर आपको अपने डेटा को क्रम से लगाने का तरीका नहीं पता, तो नीचे दिए गए कोड सैंपल देखें.

इस गाइड में, को-डूइंग एपीआई को लागू करने का तरीका बताया गया है.

CoDoingClient बनाएं

शुरू करने के लिए, शुरू करें में बनाए गए AddonSession से एक CoDoingClient बनाएं.

CoDoingClient बनाने के लिए, AddonSession.createCoDoingClient तरीके को कॉल करें और CoDoingDelegate उपलब्ध कराएं.

कोई नया स्टेटस उपलब्ध होने पर, CoDoingDelegate के ज़रिए को-डूइंग एपीआई आपके ऐप्लिकेशन को अपडेट करता है. CoDoingDelegate.onCoDoingStateChanged वाले तरीके को कॉल करने पर, आपका ऐप्लिकेशन तुरंत नई स्थिति लागू कर देता है.

नीचे दिया गया कोड सैंपल, को-डूइंग एपीआई को इस्तेमाल करने का तरीका बताता है:

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 को ऐप्लिकेशन की मौजूदा स्थिति से बदलें.