मैं एक ऐप को पुन: डिज़ाइन कर रहा हूं जिसे मैंने विरासत में दिया है जो एक लैपटॉप से डिजिटल सर्वर को डिजिटल सर्वर भेजता है। विचार "फ़ील्ड पर बाहर" तस्वीरें लेना है और उन्हें तुरंत एक वेब पेज पर प्रकाशित करना है (कुछ और फैंसी फीचर्स के साथ)।एक अविश्वसनीय (3 जी) नेटवर्क कनेक्शन पर डेटा भेजने के लिए उपयोग करने के लिए .NET में सबसे अच्छा डिज़ाइन क्या है?
विशिष्ट परिदृश्य
1. मानक यूएसबी का उपयोग कर कैमरे से लैपटॉप में स्थानांतरित कर दिए जाते हैं।
2. फोटो विभिन्न तरीकों से संसाधित किए जाते हैं। (महत्वपूर्ण नहीं)
3. प्रत्येक फोटो को एक छोटे से टुकड़ों (~ 64 केबी प्रत्येक) में एक मानक अपाचे वेब सर्वर पर वेबरेक्वेस्ट का उपयोग करके पोस्ट किया जाता है जहां इसे दोबारा विलय कर दिया जाता है।
वर्तमान डिज़ाइन के साथ समस्या यह है कि नेटवर्क कनेक्शन अविश्वसनीय होने पर यह अक्सर लटकता है। चूंकि हम एक मोबाइल नेटवर्क (3 जी) का उपयोग कर रहे हैं और अक्सर कवरेज से बाहर हो जाते हैं, मुझे इसे ठीक से संभालने का एक तरीका चाहिए।
मेरा सवाल यह है कि ऐसा करने के लिए एक बेहतर समाधान है कि जब कनेक्शन कनेक्शन हर समय गिरता है तो ऐप लटका नहीं देगा।
(बोनस सवाल यह है कि इस ठीक से लैपटॉप के साथ बढ़ोतरी निकाले बिना परीक्षण किया इकाई हो सकता है।)
संपादित 2008-11-24: मैं अब एक उचित परीक्षण वातावरण स्थापित करने के लिए प्रबंधित किया है इसके लिए NetLimiter और TMnetsim (फ्रीवेयर) के संयोजन का उपयोग कर। मैंने 5 केबी/सेकंड सेट करने और सभी पैकेटों में से 1% ड्रॉप करने का प्रयास किया - मेरा ऐप अभी भी नए डिज़ाइन के साथ अच्छा काम करता है।
संपादित करें 2008-12-11: बस यह अपडेट करने के लिए कि मैंने यह कैसे किया। मैंने एक पृष्ठभूमि कार्यकर्ता बनाया है (जैसा कि नीचे सुझाया गया है) जब भी कैमरे से पीसी में तस्वीरों की प्रतिलिपि बनाने के लिए कैमरे का पता लगाया जाता है। फिर एक और पृष्ठभूमि कार्यकर्ता जब मैंने पीसी पर फ़ाइलों को एसिंक्रोनस HTTP ट्रांसफर का उपयोग करके अपलोड करने के लिए शुरू किया। यह सब कुछ ठीक करने के लिए दर्द था, खासकर जब से ऑपरेशन किसी भी समय "रद्द करने योग्य" होना चाहिए ... लेकिन किसी भी तरह, अब यह काम करता है। मेरी मदद करने वाले हर किसी के लिए एक बड़ा धन्यवाद!
ऐसा लगता है जैसे मैं कुछ डेटा भेजता हूं और डेटा "रास्ते में" होने पर कनेक्शन ड्रॉप हो जाता है, डेटा खो जाता है और अपलोड थ्रेड लटकता है। मैं वास्तव में गन्दा कोड स्थिर करने की कोशिश करने के बजाय पूरे अपलोड को फिर से डिजाइन करना पसंद करूंगा। – Christopher
यदि आप एक टाइमआउट सेट करते हैं, तो क्या वह सम्मानित है? यह मेरा पहला बंदरगाह होगा। –