2011-11-11 13 views
8

के बीच संचार करना मेरे पास डेटाबेस बैकएंड, डेटा लेयर, साथ ही वेब यूआई परत सहित एएसपी.नेट एमवीसी का उपयोग करके बनाई गई एक मौजूदा जटिल वेबसाइट है। इस वेबसाइट को दूसरी भाषा में पुनर्निर्माण करना एक व्यवहार्य विकल्प नहीं है।नोड.जेएस और एएसपी.नेट एमवीसी अनुप्रयोग

कुछ विचारों (क्लाइंट साइड) पर कुछ यूआई तत्व हैं जो लाइव इंटरएक्टिविटी से लाभान्वित होंगे, जिसमें पुश और पुल दोनों शामिल होंगे, इसलिए एएसपीनेट में किसी प्रकार के कस्टम लंबे मतदान या वेबसाकेट सर्वर को लागू करने के बजाय, मैं देख रहा हूं विंडोज के लिए node.js का लाभ उठाने के लिए, और Socket.io।

मेरी समस्या यह है कि मुझे दोनों अनुप्रयोगों के बीच दो तरह के संचार की आवश्यकता है। प्रत्येक उपयोगकर्ता को एएसपी.नेट वेबसाइट पर अधिकृत होने के बाद ही डेटा प्राप्त करने में सक्षम होना चाहिए, इसलिए मुझे इसके लिए पहले संचार की आवश्यकता है। दूसरा, एक बार कुछ घटनाएं एएसपी.नेट वेबसाइट पर होती हैं, मैं विशिष्ट डेटा या उपयोगकर्ताओं के समूहों को प्रसारित करने के लिए, इस डेटा को तुरंत नोड सर्वर पर धक्का देना चाहता हूं। तीसरा, मैं प्रसंस्करण के लिए एएसपी.नेट वेबसाइट पर धक्का देने के लिए node.js सर्वर को भेजा गया कोई भी डेटा चाहूंगा, क्योंकि यह वह जगह है जहां हमारे सभी व्यावसायिक तर्क झूठ बोलते हैं। Node.js जोड़ने का एकमात्र कारण क्लाइंट को डेटा को सीधे धक्का देने की संभावना है, मैं इसमें कोई व्यावसायिक तर्क नहीं बनाना चाहता (या जितना संभव हो उतना छोटा)।

मैं जानना चाहता हूं कि दो-तरफा पुश संचार की सबसे तेज़ विधि नोड.जेएस और एएसपी.नेट के बीच क्या है। एकमात्र अच्छा विकल्प जो मुझे अब तक पता है, वह node.js सर्वर पर एक विशिष्ट पोर्ट पर एक विशेष श्रोता बनाने के लिए है और उससे कनेक्ट है, लेकिन मैं सोच रहा था कि क्या एक और अधिक सुरुचिपूर्ण या अधिक कुशल विधि है? मुझे यह भी पता है कि आप एक डेटाबेस का उपयोग कर सकते हैं लेकिन निश्चित रूप से इसे मतदान करने की आवश्यकता होगी और कम कुशल होगा? दोनों सर्वर विजुअल स्टूडियो प्रोजेक्ट के तहत एक ही सर्वर पर चल रहे होंगे।

आपकी सहायता के लिए बहुत धन्यवाद।

+0

इस प्रश्न के नवागंतुकों के लिए, [एजजेजेएस] (http://tjanczuk.github.io/edge/#/) नामक एक लाइब्रेरी है जो प्रस्तावित समाधानों का एक विकल्प है। सबसे अच्छी बात यह है कि यह दोनों तरीकों से जाता है - आपके पास नियंत्रण प्रक्रिया के रूप में .NET या नोड हो सकता है। –

उत्तर

3

मैं एक ASP.NET विशेषज्ञ नहीं हूँ, लेकिन मुझे लगता है कि वहाँ कई तरीके आप इस लक्ष्य को हासिल कर सकते हैं:

1) जैसा कि आपने कहा, आप नोड डेटा के लिए एक विशिष्ट पोर्ट पर सुनने बना सकता है और फिर प्राप्त आंकड़ों के आधार पर प्रतिक्रिया दें (टीसीपी)
2) आप POode अनुरोधों को Node.js (HTTP) पर कर सकते हैं और अतिरिक्त-सुरक्षित होने के लिए प्रक्रिया में auth-key भी भेज सकते हैं। 1 की तरह) नोड आपके द्वारा भेजे गए डेटा पर प्रतिक्रिया करेगा।
3) पब-सब के लिए Redis जैसे कुछ का उपयोग करें, एएसपी.नेट (पब) से संदेश भेजें और उन्हें Node.js भाग (उप) पर प्राप्त करें। यदि आप कई मशीनों आदि पर अपने ऐप्लिकेशन पैमाने पर करने चाहते हैं तो यह और भी बेहतर है

2

केवल अच्छा विकल्प मैं अब तक के बारे में पता कर रहा हूँ Node.js सर्वर पर एक विशिष्ट पोर्ट पर एक विशेष श्रोता बनाने के लिए है और उस से कनेक्ट करें, लेकिन मैं सोच रहा था कि क्या अधिक सुरुचिपूर्ण या अधिक कुशल विधि है?

आप redis pub/sub मॉडल जहां ASP.NET MVC आवेदन और Node.js आदेश पूर्ण द्वैध संचार प्राप्त करने के लिए अलग चैनलों के माध्यम से संवाद होगा को देखने के लिए कोशिश कर सकते हैं। या आप CouchDB change nofitications का उपयोग करने का भी प्रयास कर सकते हैं।

मुझे यह भी पता है कि आप डेटाबेस का उपयोग कर सकते हैं लेकिन निश्चित रूप से यह को मतदान करने की आवश्यकता होगी और कम कुशल होगा?

पूर्व तकनीकों को आपको परिवर्तनों के लिए मतदान करने की आवश्यकता नहीं है, लेकिन बदले में परिवर्तन होने पर या चैनल संदेश आने पर वे आपको सूचित करेंगे।

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