Sign inGet Started

प्राइवेट चैनल

जिस चैनल का नाम private- से शुरू होता है, उसके लिए सार्वजनिक ऐप कुंजी के अलावा आपके बैकएंड से ऑथराइज़ेशन भी ज़रूरी है। आपका बैकएंड उस चैनल के लिए कॉल करने वाले को मंज़ूरी देता है और ऐप सीक्रेट से गणना किया गया हस्ताक्षर लौटाता है।

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

const bird = new BirdRealtime({
  appKey: "your-app-key",
  region: "us1",
  authEndpoint: "/bird/auth",
});

const orders = bird.subscribe("private-orders-4821");
orders.bind("order-updated", (data) => {
  console.log(data);
});

Swift और Kotlin के लिए पूर्ण ऑथराइज़ेशन URL ज़रूरी है, जबकि ब्राउज़र क्लाइंट उसी ओरिजिन का पाथ इस्तेमाल कर सकता है। अपने API का सेशन टोकन authHeaders के ज़रिए जोड़ें। क्लाइंट हर ऑथराइज़ेशन अनुरोध में ये हेडर शामिल करता है, दोबारा कनेक्ट होने के बाद के अनुरोधों में भी।

क्लाइंट कनेक्शन ID और चैनल का नाम authEndpoint पर पोस्ट करता है। सब्सक्रिप्शन तभी पूरा होता है जब एंडपॉइंट कॉल करने वाले को मंज़ूरी देकर मान्य हस्ताक्षर लौटाता है। चैनल ऑथराइज़ करना में अनुरोध, प्रतिक्रिया और हस्ताक्षर की जाने वाली स्ट्रिंग की परिभाषा दी गई है।

हर उपयोगकर्ता या हर टेनेंट के लिए चैनल का नाम रखना

संसाधन का दायरा चैनल के नाम में रखें और अपने एंडपॉइंट में उसकी जाँच करें। क्लाइंट किसी भी चैनल नाम का अनुरोध कर सकता है, इसलिए आपके बैकएंड को एक ग्राहक को दूसरे ग्राहक के चैनल की सदस्यता लेने से रोकना होगा:

if (channel_name !== `private-orders-${user.accountId}`) {
  return res.sendStatus(403);
}

यही तुलना ऑथराइज़ेशन का फ़ैसला है। ऐक्सेस कंट्रोल के लिए कभी भी ऐसे चैनल नामों पर निर्भर न रहें जिनका अनुमान लगाना कठिन हो।

प्राइवेट चैनल क्या-क्या सपोर्ट करते हैं

  • क्लाइंट इवेंट। जब ऐप में क्लाइंट इवेंट सक्षम हों, तो सब्सक्राइब किया हुआ क्लाइंट आपके सर्वर से होकर गए बिना चैनल के अन्य क्लाइंट को client- इवेंट भेज सकता है। सार्वजनिक चैनलों पर एज इन्हें अस्वीकार कर देता है।
  • कनेक्शन गिनती। जब ऐप में कनेक्शन गिनती और कनेक्शन गिनती इवेंट की सेटिंग चालू हों, तो क्लाइंट को चैनल के लिए bird:connection_count मिलता है।
  • सर्वर से प्रकाशन। आपके सर्वर से प्रकाशन ठीक वैसे ही काम करता है जैसे सार्वजनिक चैनल के लिए: channels ऐरे में चैनल का नाम दें। आपके सर्वर पर कोई ऑथराइज़ेशन लागू नहीं होता, क्योंकि उसके पास पहले से ऐप सीक्रेट है।

प्राइवेट चैनलों में सदस्य पहचान और सदस्य इवेंट नहीं होते। अगर आपको जानना है कि कौन मौजूद है, तो प्रेज़ेंस चैनल का उपयोग करें।

जब सब्सक्रिप्शन अस्वीकार हो जाए

अस्वीकार किया गया सब्सक्रिप्शन bird:subscription_error के रूप में आता है। इसके आम कारणों में आपके एंडपॉइंट से non-2xx प्रतिक्रिया या अनुरोध से मेल न खाने वाला सिग्नेचर शामिल है। समस्या निवारण के लिए चैनलों का ऑथराइज़ेशन देखें।

अगले कदम

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