2012-01-10 13 views
6

मैं संदेशों को प्रेषित करने के लिए Faye का उपयोग कर रहा हूं और यह अच्छी तरह से काम करता है। लेकिन मैं किसी दिए गए चैनल के लिए सक्रिय कनेक्शन पुनर्प्राप्त करना चाहता हूं, और चीजें थोड़ा अलग तरीके से व्यवहार करती हैं: "list active subscribers on a channel" देखें।फेय का उपयोग कर सक्रिय ग्राहकों को कैसे सूचीबद्ध करूं?

मैं एक कमरे में चैट करने वाले मौजूदा उपयोगकर्ताओं की सूची दिखाना चाहता हूं। मैंने /meta/subscribe चैनल extensions के माध्यम से चैनल को अवरुद्ध करके ऐसा करने की कोशिश की लेकिन मुझे पूरा यकीन नहीं है कि सर्वर पर उपयोगकर्ता नाम जैसे डेटा कैसे भेजना है।

एक /meta/subscribe को संदेश बीच में पकड़ा इस तरह दिखता है:

{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"} 

यह "username" => "foo" भेजने के लिए अच्छा होगा।

Monitoring भी दिलचस्प है, लेकिन फिर, ऐसा लगता है कि मैं सब्सक्राइब करने पर कोई विशिष्ट डेटा नहीं भेज सकता।

क्या किसी को इस तरह के मुद्दों का अनुभव है?

उत्तर

8

आप एक क्लाइंट-साइड एक्सटेंशन का उपयोग कर डेटा संलग्न कर सकते हैं:

client.addExtension({ 
    outgoing: function(message, callback) { 
    if (message.channel === '/meta/subscribe') { 
     message.ext = message.ext || {}; 
     message.ext.username = 'username'; 
    } 
    callback(message); 
    } 
}); 

इस डेटा तो अपने सर्वर साइड विस्तार करने के लिए दिखाई जाएगी। हालांकि, इसे लागू करने से पहले, इस धागे को पढ़ें: https://groups.google.com/group/faye-users/msg/53ff678bcb726fc5

4

क्या आपने समय-समय पर प्रकाशित करने के लिए एक चैनल बनाने पर विचार किया है जिसके लिए उपयोगकर्ता वर्तमान में सदस्यता ले रहा है? आप इसे अतिरिक्त स्थिति की जानकारी के साथ दिल की धड़कन/पिंग की तरह सोच सकते हैं जैसे उपयोगकर्ता और चैनल की सदस्यता ली जा सकती है।

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