2016-09-18 9 views
6

मैं वास्तव में एक वेब एप्लिकेशन (एएसपी.नेट एमवीसी) पर काम करता हूं जो टीसीपी/आईपी में स्थानीय नेटवर्क पर एक मोटी-क्लाइंट एप्लिकेशन (जिसे मैं संशोधित नहीं कर सकता) को कमांड भेजता हूं। मुझे चाहिए कि मोटी-क्लाइंट एप्लिकेशन मेरे आदेश का जवाब दे या मुझे जानकारी दे, इसलिए कनेक्शन हर समय खोलने की जरूरत है। मैं एक पाश है कि ऐसे ही सर्वर प्रतिक्रिया की जाँच करता है बनाने के लिए:टीसीपी/आईपी क्लाइंट साइड लूप .NET

public static async void getMessage() 
     { 
      while(true) 
      { 
       // Buffer to store the response bytes. 
       Byte[] data = new Byte[100000]; 

       // String to store the response ASCII representation. 
       String responseData = String.Empty; 

       // Read the first batch of the TcpServer response bytes. 
       Int32 bytes = await stream.ReadAsync(data, 0, data.Length); 
       if (bytes == 0) continue; 
       responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); 
       Debug.Write(responseData); 

       await stream.ReadAsync(data, 0, data.Length); 
      } 
     } 

कि वास्तव में काम कर रहा है, और मैं सर्वर से प्रतिक्रिया प्राप्त है, लेकिन ब्राउज़र हर समय "स्थानीय होस्ट के लिए इंतज़ार कर" है, इसलिए एक बेहतर है ऐसा करने का तरीका, ब्राउजर पर लूप के बिना?

बहुत बहुत धन्यवाद!

उत्तर

5

यह वेबसाइकिल के लिए वास्तव में एक अच्छा मामला जैसा लगता है। एक एमवीसी ऐप में, आप आमतौर पर सिग्नलआर का उपयोग करेंगे: http://www.asp.net/signalr

+0

सबसे पहले अपने समय @ डिपरिश के लिए धन्यवाद। मेरे पास एक और सवाल है (शायद एक बेवकूफ ...) वेब एप्लिकेशन इंटरनेट पर बिना किसी स्थानीय नेटवर्क पर उपयोग करने के लिए सर्वर पर "तैनाती" होगा। क्या यह सिग्नल के उपयोग के साथ एक समस्या होगी? –

+0

नहीं, यह तब तक कोई फर्क नहीं पड़ता जब तक आपके पास अपने इंट्रानेट सर्वर पर सिग्नलआर पैकेज तैनात नहीं होते हैं। यदि आपने NuGet ('Install-Package Microsoft.AspNet.SignalR') के माध्यम से स्थापित किया है, तो इसे सही ढंग से पैक/तैनात किया जाना चाहिए – dperish

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