2012-02-29 4 views
7

का उपयोग करके प्राधिकरण अनुरोध (रोस्टर में जोड़ें) ब्राउज़र में XMPP संदेश भेजने और प्राप्त करने के लिए strophe.js लाइब्रेरी का उपयोग करता हूं। यह ठीक काम करता है, लेकिन केवल उन उपयोगकर्ताओं के लिए जो मेरे पास पहले से ही मेरी संपर्क सूची में है - रोस्टर।strophe.js

मुझे अपने रोस्टर को किसी को जोड़ने का पता है (जिसका पता मुझे पता है)। Strophe.js का उपयोग करके मैं इसे कैसे प्राप्त कर सकता हूं? यह मेरे लिए महत्वपूर्ण है क्योंकि जीमेल उन लोगों को संदेश भेजने से इनकार करता है जो मेरे रोस्टर में नहीं हैं। मैं सदस्यता प्राप्त करना चाहता हूं: दोनों, संदेश प्राप्त करने और भेजने में सक्षम होने के लिए।

उत्तर

10

संदेश <presence to="[email protected]" type="subscribe"/>:

conn.send($pres({ to: "[email protected]", type: "subscribe" })); 

जब अपने दोस्त को स्वीकार करता है, वे भेजना चाहिए एक आप के लिए भी सब्सक्राइब करने पर आपको प्रकार के साथ भेजे उपस्थिति के लिए एक छंद हैंडलर की स्थापना करके संभाल कर सकते हैं जो "ग्राहक बनें":

function on_subscription_request(stanza) 
{ 
    if(stanza.getAttribute("type") == "subscribe" && is_friend(stanza.getAttribute("from"))) 
    { 
     // Send a 'subscribed' notification back to accept the incoming 
     // subscription request 
     conn.send($pres({ to: "[email protected]", type: "subscribed" })); 
    } 
    return true; 
} 
conn.addHandler(on_subscription_request, null, "presence", "subscribe"); 
+0

धन्यवाद, यह वही है जो मुझे चाहिए। –

+0

@MattJ और whit is_friend विधि, क्या आप इसके साथ कोड अपडेट कर सकते हैं? – pregmatch

+1

@pregmatch यह आपके आवेदन पर निर्भर करता है। यह एक जेआईडी प्राप्त करता है और यदि उपयोगकर्ता अपना अनुरोध स्वीकार करना चाहता है, या गलत है तो वह सच होना चाहिए। – MattJ