Sign inGet Started

प्रेज़ेंस चैनल

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

ऑनलाइन सूचियों, दस्तावेज़ देखने वालों, टाइपिंग संकेतकों या साझा कर्सर के लिए प्रेज़ेंस चैनल इस्तेमाल करें।

सब्सक्राइब करना

const room = bird.subscribe("presence-room-1");

room.bind("bird:subscription_succeeded", () => {
  console.log("me:", room.myId);
  console.log("here now:", [...room.members.values()]);
});

room.bind("bird:member_added", (member) => console.log("joined", member.member_id));
room.bind("bird:member_removed", (member) => console.log("left", member.member_id));

Swift और Kotlin में subscribe एक बेस चैनल टाइप लौटाता है। myId या members तक पहुँचने से पहले उसे PresenceChannel में कास्ट करें। Swift में bird:subscription_succeeded के लिए एक सदस्य मैप मिलता है, और जुड़ने व निकलने के इवेंट के लिए एक Member मिलता है। Kotlin हर इवेंट को JsonElement के रूप में देता है। दोनों क्लाइंट में मौजूदा सूची room.members से पढ़ें।

सब्सक्रिप्शन पूरा होने पर bird:subscription_succeeded फ़ायर होता है। उस समय room.members में मौजूदा सदस्य सूची होती है और room.myId में आपका member_id होता है। बाद के जुड़ने और निकलने वाले इवेंट लागू करने से पहले यह शुरुआती सूची दिखाएँ।

ऑथराइज़ेशन का तरीका प्राइवेट चैनल जैसा ही है, बस एक चीज़ अतिरिक्त है: आपका एंडपॉइंट member_data लौटाता है, जो member_id और वैकल्पिक member_info वाली एक JSON स्ट्रिंग है। एंडपॉइंट को ठीक उसी स्ट्रिंग पर हस्ताक्षर करना होगा। चैनल ऑथराइज़ करना देखें।

member_info को सुरक्षित तरीके से इस्तेमाल करें

चैनल के हर सदस्य को member_info मिलता है। इसमें केवल छोटा सार्वजनिक प्रोफ़ाइल डेटा रखें, जैसे दिखाया जाने वाला नाम या अवतार URL। ईमेल पते, ऑथराइज़ेशन भूमिकाएँ या कोई अन्य संवेदनशील डेटा न डालें।

आपका बैकएंड अपनी हस्ताक्षरित ऑथराइज़ेशन प्रतिक्रिया में member_id और member_info तय करता है। क्लाइंट सब्सक्रिप्शन का अनुरोध कर सकता है, लेकिन हस्ताक्षरित पहचान खुद नहीं चुन सकता।

सदस्य और कनेक्शन

एक सदस्य के कई कनेक्शन हो सकते हैं। उदाहरण के लिए, तीन खुले टैब से एक सदस्य और तीन कनेक्शन बनते हैं:

क्या होता हैसदस्य इवेंटचैनल कनेक्शन संख्या
पहला टैब सब्सक्राइब करता हैbird:member_added1
दूसरा टैब सब्सक्राइब करता हैकोई नहीं2
दूसरा टैब बंद होता हैकोई नहीं1
आखिरी टैब बंद होता हैbird:member_removed0

room.members सत्रों को नहीं, पहचानों को दर्शाता है। प्रेज़ेंस चैनल bird:connection_count इवेंट नहीं भेजते। खुले कनेक्शनों की संख्या पढ़ने के लिए Connection counting चालू करें और अपने सर्वर से include=connection_count के साथ चैनल प्राप्त करें को कॉल करें। सदस्य सूची को अद्यतन रखने के लिए bird:member_added और bird:member_removed का उपयोग करें।

अपने सर्वर से प्रेज़ेंस पढ़ना

सर्वर की ओर से पढ़ने के दो तरीके हैं, और किसी के लिए भी सब्सक्रिप्शन ज़रूरी नहीं है:

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

आप इसे पब्लिश करते समय भी माँग सकते हैं, जिससे हर लक्ष्य चैनल की उस क्षण की स्थिति लौटती है। इवेंट पब्लिश करना देखें।

अगले चरण

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