के साथ कॉल किया है, मैं एक्सएमपीपी के साथ काम कर रहा हूं और मेरे पास एक संदेश कॉलबैक है जो हर संदेश भेजे जाने की स्थिति पर सक्रिय है। मेरा उद्देश्य संदेश द्वारा किसी एपीआई को कॉलबैक के भीतर आने वाले डेटा को भेजना है और प्रतिक्रिया के आधार पर एक्सएमपीपी क्लाइंट का उपयोग करके कुछ वापस भेजना है।असींक्रोनस विधियों ने रूबी के साथ अजाक्स
- प्रयोक्ता प्रकार संदेश (ब्राउज़र चैट क्लाइंट)
- संदेश XMPP के माध्यम से सर्वर से आता है
- संदेश एपीआई
- प्रतिक्रिया प्राप्त होता है
- रिस्पांस चैट क्लाइंट के लिए वापस भेज दिया जाता है के लिए भेज दिया जाता है ।
इस के लिए मेरे कोड के रूप में
admin_muc_client.activate_message_callbacks do |m|
sender = m.from.resource
room_slug = m.from.node
message = m.body
r = HTTParty.get('http://example.com/api/v1/query?msg=message')
Rails.logger.debug(r.inspect)
admin_muc_client.send_message("Message #{r.body}") if m.from.resource != 'admin'
end
इस प्रकार है
मेरे यहाँ चिंता यह है कि जब से कॉलबैक evented है और एपीआई के लिए अनुरोध एक अवरुद्ध कॉल होगा इस पूरे आवेदन के लिए एक अड़चन बन सकता है । मैं जावास्क्रिप्ट के लिए AJAX जैसे कुछ का उपयोग करना पसंद करूंगा जो अनुरोध को आग लगाएगा और जब प्रतिक्रिया उपलब्ध हो तो डेटा भेजें। रूबी में मैं इसे कैसे कार्यान्वित कर सकता हूं?
मैंने देरी_job और पृष्ठभूमिआरबी को देखा है जो आग के लिए उपकरण की तरह दिखता है और संचालन भूल जाता है। मुझे कुछ ऐसी चीज चाहिए जो प्रतिक्रिया के साथ एक असीमित तरीके से कॉलबैक को सक्रिय करे।
मैं वास्तव में असीमित व्यवहार को प्राप्त करने के तरीके पर कुछ मदद की सराहना करता हूं। मैं रब्बीएमक्यू जैसे संदेश कतारों से भी परिचित हूं, जो मुझे लगता है कि महत्वपूर्ण जटिलता के अतिरिक्त होगा।
बहुत बढ़िया यह एक शॉट देगा। शायद यह यह है। – Sid
मुझे यह पता चलता है कि यह कंसोल में काम करता है लेकिन विकास मोड में एप्लिकेशन में चलाए जाने पर कार्य को कतार में नहीं जोड़ता है। बीटीडब्ल्यू मैं देव मोड में यात्री और अपाचे चला रहा हूँ। – Sid