2016-12-17 6 views
10

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

हमारे पास उन उपकरणों के साथ दिल की धड़कन है जो हम नियंत्रित करने जा रहे हैं। हालांकि, समस्या उस चरण तक पहुंचने के बिना भी हो सकती है। मेरा मतलब है कि, हमारे सभी ऐप में से पहले यूडीपी पैकेट को मल्टीकास्ट पते पर भेजकर उपकरणों की खोज करने की आवश्यकता है। फिर हम उन उपकरणों से प्रतिक्रिया प्राप्त करने के बाद, हम उनके बीच एक कनेक्शन बनाते हैं। यही वह समय है जब हम दिल की धड़कन प्राप्त कर सकते हैं। जिस समस्या के बारे में मैं बात कर रहा हूं वह सिर्फ डिवाइसों की तलाश करने के चरण में है, यदि नेटवर्क यातायात भयानक है, तो हमारा डिवाइस यूडीपी पैकेट प्राप्त नहीं कर पाएगा।

  1. एक http सर्वर और एक ग्राहक

हम एक हल्के http सर्वर शुरू कर दिया है, वहाँ एक फ़ाइल रखी शुरू:

अब तक, ये हमारे प्रयास किया गया था। फिर हम एक ग्राहक बनाते हैं और उस फ़ाइल को डाउनलोड करते हैं, और गति की निगरानी करते हैं। लेकिन ऐसा लगता है कि एक लूपबैक नहीं है क्योंकि यह काम नहीं कर रहा है। डिवाइस देखता है कि दोनों पक्ष (http क्लाइंट और सर्वर) एक ही क्षेत्र के हैं (शायद शब्द गलत है) तो हो सकता है कि डाउनलोड राउटर को पास न करे।

  1. हमारे एप्लिकेशन में iperf एकीकृत:

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

  1. फेसबुक द्वारा प्रदान की गई कनेक्शन स्पीड जांच के लिए ओपन सोर्स lib का उपयोग करना।

हमें जिथब में एक ओपन सोर्स लिब मिला जो कनेक्शन की गति की गुणवत्ता की जांच करता है। हालांकि, गति की जांच करने के लिए इसके लिए इंटरनेट कनेक्शन की आवश्यकता है। लेकिन हमारे उत्पाद को उपयोगकर्ता के पास इंटरनेट कनेक्शन की आवश्यकता नहीं है। उपयोगकर्ता को सिर्फ राउटर और ऐप की आवश्यकता होती है। तो, दुर्भाग्य से, हम इस समाधान का उपयोग नहीं कर सकते हैं।

  1. उसी डिवाइस से फ़ाइल डाउनलोड करते समय लूपबैक को अक्षम करने के तरीके की खोज करने का प्रयास किया।

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

तो, हमारे सवाल यह है:

  1. यदि हमारे पास पहले ही प्रयास है, तो हम कैसे इस लूपबैक बात निष्क्रिय कर सकते हैं ताकि हम ठीक से डाउनलोड गति की निगरानी कर सकते?

  2. तो हमारे पहले प्रयास पर्याप्त नहीं है, तो क्या कोई अन्य तरीका है कि हम स्थानीय स्तर पर बैंडविड्थ परीक्षण करने के लिए कर सकते हैं?

नोट: कोई इंटरनेट कनेक्शन नहीं होना चाहिए और एक से अधिक फोन का उपयोग नहीं किया जाना चाहिए।

अग्रिम धन्यवाद! के रूप में यह here समझाया गया है यह हमेशा काम नहीं करेगा

InetAddress.getByName(router).isReachable(timeOut) 

,, लेकिन अगर यह सबूत करता है यह एक नेटवर्क समस्या नहीं है कि:

+0

आप अपने अनुप्रयोग के साथ संवाद स्थापित वाईफ़ाई उपकरण हैं, तो - वे एक 'दिल की धड़कन' जहां अगर आप कनेक्टिविटी खो नहीं हो सकता है - आप के लिए संकेत करें। विचार के साथ (1) एक ही मशीन पर http सर्वर और क्लाइंट हैं? यदि नहीं - तो आप किसी भी संचार यातायात के दौरान जांचने के लिए वायरसहार्क जैसे प्रॉक्सी का उपयोग कर सकते हैं। –

+0

@ मॉरिसन चांग हां, हमारे उपकरणों में दिल की धड़कन है। लेकिन यह तब होता है जब ऐप को पहले से ही डिवाइस मिलते हैं और फिर सॉकेट कनेक्शन के माध्यम से उनसे जुड़े होते हैं। मैं अपना प्रश्न अपडेट करूंगा। धन्यवाद! –

+0

@MorrisonChang हाँ, दोनों सर्वर और ग्राहक एक ही मशीनों –

उत्तर

0

हालांकि यह एक आंशिक समाधान है, इसलिए यह देखना मदद कर सकता है।

यह भी लायक एक http बनाने का प्रयास है और https, रूटर आईपी पते के लिए अनुरोध के बाद से सबसे वाणिज्यिक रूटर एक वेब इंटरफेस प्रदान करते हैं।

तुलना बाद प्रतिक्रिया समय आप नेटवर्क स्थिति करती हैं मदद कर सकता है।

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