Sign inGet Started

चैनल की स्थिति की क्वेरी करना

सर्वर-साइड के तीन रीड ऑपरेशन सक्रिय चैनलों की सूची देते हैं, किसी एक चैनल की जाँच करते हैं, और किसी presence चैनल के सदस्यों की सूची देते हैं। हर अनुरोध को अपनी Bird API कुंजी और Realtime ऐप की कुंजी और सीक्रेट से प्रमाणित करें।

import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY,
  realtime: {
    key: process.env.BIRD_REALTIME_KEY,
    secret: process.env.BIRD_REALTIME_SECRET,
  },
});

कौन-से चैनल सक्रिय हैं

const { data } = await bird.realtime.channels.list(appId, { prefix: "presence-" });

for (const channel of data) {
  console.log(channel.name);
}

कोई चैनल तब तक सूची में दिखता है, जब तक कम से कम एक कनेक्शन उसकी सदस्यता लिए हुए है। चैनल अलग से बनाए या पंजीकृत नहीं किए जाते, इसलिए खाली चैनल सूची में नहीं दिखते। परिणाम को presence- या orders- जैसे किसी समूह तक सीमित करने के लिए prefix का उपयोग करें।

प्रतिक्रिया पेजों में नहीं बँटी होती और हर सक्रिय चैनल को एक ही लाइव स्नैपशॉट में लौटाती है। Realtime चैनलों की सूची बनाएँ देखें।

किसी एक चैनल की जाँच करें

const channel = await bird.realtime.channels.get(appId, "presence-lobby", {
  include: ["member_count"],
});

if (!channel.occupied) return; // nobody is listening; skip the work

अज्ञात या अप्रयुक्त नाम के लिए occupied: false के साथ 200 OK लौटता है। जब कोई कनेक्शन परिणाम प्राप्त नहीं कर सकता, तब काम छोड़ने के लिए इस परिणाम का उपयोग करें। Realtime चैनल प्राप्त करें देखें।

include के ज़रिए गिनती

include को कई बार दिया जा सकता है और यह ठीक दो मान स्वीकार करता है:

  • member_count अलग-अलग सदस्यों की संख्या है, और यह केवल presence चैनलों पर काम करता है।
  • connection_count चैनल से सब्सक्राइब किए गए कनेक्शनों की संख्या है, और इसके लिए ऐप में कनेक्शन गिनने की सेटिंग चालू होनी चाहिए।

कोई भी अन्य मान 400 Bad Request लौटाता है। API इन स्थितियों में भी 400 Bad Request लौटाता है: नॉन-प्रेज़ेंस चैनल पर member_count माँगने पर, प्रेज़ेंस प्रीफ़िक्स के बिना सूची का अनुरोध करने पर, या कनेक्शन गिनती बंद होने पर connection_count माँगने पर।

एट्रिब्यूट माँगने पर उपयोग में एक अतिरिक्त संदेश गिना जाता है। अगर occupied से आपके सवाल का जवाब मिल जाता है, तो इन्हें न माँगें।

एक सदस्य के कई कनेक्शन हो सकते हैं। अगर किसी रूम में तीन लोग हैं और हर एक के दो टैब खुले हैं, तो member_count 3 और connection_count 6 आता है। प्रेज़ेंस चैनल में यह अंतर समझाया गया है।

कौन मौजूद है

const { members } = await bird.realtime.channels.members(appId, "presence-lobby");

for (const member of members) {
  console.log(member.member_id);
}

प्रतिक्रिया में केवल सदस्य ID होती हैं। member_info सब्सक्राइब किए गए क्लाइंट को भेजा जाता है और इस REST ऑपरेशन से उपलब्ध नहीं होता। नाम या अवतार दिखाने के लिए इन ID को अपने रिकॉर्ड से मिलाएँ। देखें चैनल के सदस्यों की सूची।

पब्लिश करते समय स्थिति पढ़ना

पब्लिश करते समय include का उपयोग करें, ताकि पब्लिश के समय हर लक्षित चैनल की वही गिनतियाँ लौटें। देखें पब्लिश करते समय चैनल की स्थिति पढ़ना।

किसी एक समय की स्थिति

हर प्रतिक्रिया किसी एक समय का स्नैपशॉट होती है और तुरंत पुरानी पड़ सकती है। इसे एक बार के निर्णयों के लिए इस्तेमाल करें, लगातार स्थिति जानने के लिए बार-बार पोलिंग न करें।

लगातार स्थिति के लिए किसी एंडपॉइंट को Realtime वेबहुक समूहों से सब्सक्राइब करें। realtime.channel_existence भरे और खाली हुए चैनलों की जानकारी देता है, realtime.presence सदस्यों में बदलाव बताता है, और realtime.connection_count कनेक्शन गिनती में बदलाव बताता है। अपने सहेजे गए व्यू को शुरू करने या मिलान करने के लिए चैनल स्थिति पढ़ने वाले अनुरोधों का उपयोग करें।

आगे क्या करें

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।