2012-09-30 10 views
6

मैं एक नोड.जेएस एप्लीकेशन लिख रहा हूं जो RabbitMQ पर निर्भर करता है। मैं खरगोश एमक्यू से कनेक्ट करने के लिए पसंद की लाइब्रेरी के रूप में नोड-एएमपीपी का उपयोग कर रहा हूं।खरगोश एमक्यू और नोड-एएमपीपी: पुष्टि मोड में एक्सचेंज पुष्टि नहीं करता है - क्यों?

var options = { autoDelete: false, confirm: true, durable: true, type: 'direct' }; 
connection.exchange('myExchange', options, function (myExchange) { 
    // ... 
}); 

यह पूरी तरह से काम करता है:

एक बार मैं RabbitMQ से कनेक्शन की स्थापना की है, पहली बात मैं करने जा रहा हूँ एक मुद्रा बनाने के लिए है। जैसा कि आप देख सकते हैं, मैं confirm: true का उपयोग कर एक्सचेंज बना रहा हूं, इसलिए मुझे उम्मीद है कि विनिमय बाद में पुष्टि मोड में होगा।

अब एक समस्या प्रतीत होता है एक बार मैं एक संदेश प्रकाशित करने का प्रयास:

var options = {}; 
myExchange.publish('', { data: 'foobar' }, options, function() { 
    // ... 
}); 

समस्या यह है कि publish समारोह के कॉलबैक कभी नहीं कहा जाता है - हालांकि संदेश सफलतापूर्वक प्रकाशित किया गया था (के रूप में मैं RabbitMQ के भीतर देख सकते हैं वेब प्रबंधन उपकरण)।

क्या मैं गलत तरीके से पुष्टि मोड को समझता हूं? क्या यह नोड-एएमपीपी के साथ एक बग है?

किसी भी मदद :-)

उत्तर

11

प्रश्न उचित GitHub issue में जवाब की सराहना की जाएगी: NPM पर नोड AMQP एक पुराने संस्करण है ... वर्तमान तरीके को सीधे GitHub से master शाखा का प्रयोग है।

इसका मतलब है, npm का उपयोग करते समय https://github.com/postwait/node-amqp/tarball/master का उपयोग करें।


अद्यतन नवंबर 2013

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

दुर्भाग्यवश नोड-एएमपीपी की स्थिति एक साल पहले की तरह ही है: एनपीएम से प्रकाशित संस्करण शायद ही प्रयोग योग्य है। एक साल पहले मुझे मिली कुछ बग अभी भी हैं (मेरे प्रश्न से एक सहित), इसलिए दिया गया वर्कअराउंड अभी भी वैध है: गिटहब से नवीनतम मास्टर प्राप्त करें।

+1

यह नोड-एएमपीपी संस्करण 0.2.0 में तय किया गया प्रतीत होता है। प्रकाशित एनपीएम संस्करण मेरे लिए काम करता है। – chevett

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