2012-01-28 14 views
5

मुझे आश्चर्य है कि XMPP सर्वर (उपयोगकर्ता जेआईडी पास कर रहा है) से पूछताछ करने का कोई तरीका है या नहीं, यह पता लगाने के लिए कि इस उपयोगकर्ता का वर्तमान में कौन सा चैट रूम है? यदि नहीं, तो क्या हम सभी सक्रिय चैट रूम की सूची प्राप्त करने के लिए जाबर सर्वर से पूछ सकते हैं?क्या यह निर्धारित करने का कोई तरीका है कि उपयोगकर्ता किस Mulit उपयोगकर्ता सम्मेलन (एमयूसी) में शामिल हो गया है?

बीटीडब्ल्यू हम बहुउद्देशीय चैट के लिए ejabber सक्षम हैं। एक जावा पुस्तकालय (smack?) का उपयोग कर एक समाधान आदर्श होगा।

+0

क्या आप कमरों की सूची चाहते हैं, या कोई अन्य उपयोगकर्ता? या तो अच्छे जवाब नहीं हैं, लेकिन पहला सैद्धांतिक रूप से संभव है, और दूसरा गोपनीयता उल्लंघन है। –

+0

टीएक्स, जो। मैं वास्तव में यादृच्छिक उपयोगकर्ता के लिए चैट रूम की सूची प्राप्त करना चाहता था (मैं उन कमरों की एक सूची पेश करना चाहता था जहां उनके फेसबुक मित्र इस समय शामिल हो गए थे)। –

+1

मुझे पहले की आवश्यकता है, (मौजूदा उपयोगकर्ता में चैट चैट करने के लिए)। यह करने के बारे में कोई कैसे होगा? धन्यवाद। –

उत्तर

3

जैसा कि जो हिल्डब्रैंड द्वारा उल्लिखित है, ऐसी कोई मानक विशेषता नहीं है क्योंकि यह XMPP से अधिक की अनुमति देने का गोपनीयता उल्लंघन है, इसलिए आप स्मैक से ऐसा करने की अपेक्षा नहीं कर सकते हैं। शायद व्यवस्थापक विशेषाधिकार के साथ आपके पास कस्टम प्रोटोकॉल एक्सटेंशन हो सकता है जो ऐसा करता है लेकिन यह जोखिम भरा लगता है।

हालांकि, सर्वर स्तर पर, आप ejabberd के लिए एक कस्टम मॉड्यूल लिखने में सक्षम होना चाहिए जो सभी कमरों में क्वेरी या इंडेक्स करेगा। यह मानक नहीं है और प्लगइन विकास शामिल है।

0

सभी चैट रूम प्राप्त करना कोई समस्या नहीं है, बस use this query

पहले से ही एक सवाल है कि स्मैक के साथ कमरे कैसे प्राप्त करें। Look here

+1

महान, टीएक्स। मैं किसी दिए गए उपयोगकर्ता के लिए विशिष्ट कमरे (ओं) प्राप्त करने के तरीके की तलाश में रहूंगा .. जैबर को यह जानकारी कहीं मिल गई है .. –

+0

@YuriRomanenko क्या आप कोई अपडेट प्रदान कर सकते हैं? –

1

वहाँ दो (शायद तीन) XMPP संस्थाओं है कि जानकारी नहीं है कि कर रहे हैं:

  • XMPP MUC घटक है जो MUC कक्ष
  • उपयोगकर्ताओं XMPP ग्राहक (या बेहतर XMPP पुस्तकालय उपयोगकर्ता के द्वारा उपयोग प्रदान करता है)
  • शायद XMPP सर्वर (रों) (लेकिन उस पर ध्यान न दें)

इस लिखने के समय करते हैं, वहाँ कोई मानकीकृत तरीका है (एक्सएमपीपी एक्सईपी के मामले में) उस जानकारी को पूछने के लिए। जैसा कि जो हिल्डेब्रैंड ने बताया, इसके परिणामस्वरूप एक सूचना रिसाव होगी जो ज्यादातर मामलों में हम नहीं चाहते हैं।

लेकिन आप या तो उस जानकारी को प्रदान करने के लिए एमयूसी घटक का विस्तार कर सकते हैं (याद रखें कि एक्सएमपीपी आसानी से विस्तार योग्य है) या एक्सएमपीपी क्लाइंट लाइब्रेरी। सामान्य दृष्टिकोण एक आईक प्राप्त क्वेरी के माध्यम से होगा। उदाहरण के लिए:

<iq type='get' from='[email protected]/balcony' to='capulet.lit' id='q1'> 
    <query xmlns='http://jabber.org/protocol/muc#joinedrooms'/> 
</iq> 

उस क्वेरी का समर्थन करने वाली संस्थाएं अनुरोधित इकाई के शामिल कमरों को वापस रिपोर्ट करेंगी। इसके अलावा वे अपनी सेवा खोज जानकारी में http://jabber.org/protocol/muc#joinedrooms सुविधा की घोषणा कर सकते हैं।

ध्यान दें कि यह एक काल्पनिक प्रोटोकॉल एक्सटेंशन उदाहरण के रूप में है। मैंने इसे वास्तविक उपयोग में कभी नहीं देखा है

यदि एमयूसी घटक इस सुविधा को प्रदान करता है तो यह जानकारी प्रकट होने पर ग्राहक द्वारा नियंत्रित नहीं है। लेकिन यदि ग्राहक इस सुविधा को प्रदान करता है तो निश्चित रूप से वह यह नियंत्रित कर सकता है कि इस जानकारी को कौन प्राप्त कर सकता है। आप तय कर सकते हैं कि आपके मामले में बेहतर दृष्टिकोण क्या है।

संबंधित मुद्दे

 संबंधित मुद्दे