मैं एक मैसेजिंग ऐप पर काम कर रहा हूं और मुझे सर्वर से क्लाइंट को डेटा भेजने के तरीके के बारे में एक दुविधा है।क्या सर्वर-टू-क्लाइंट मैसेजिंग एपीएनएस पर भरोसा कर सकता है?
मैं एक केंद्रीकृत सर्वर डिज़ाइन का उपयोग कर रहा हूं, जहां सर्वर सर्वर पर संदेश भेजने के लिए NSURLConnection
का उपयोग करता है, सर्वर खुले सॉकेट को नहीं रखता और प्रबंधित नहीं करता है और ग्राहकों में से किसी एक के लिए संदेश नहीं भेज सकता है। तो ग्राहक एक टाइमर का उपयोग करते हैं और प्रत्येक 2 सेकंड में सर्वर से पूछताछ करते हैं कि नया डेटा उनके लिए इंतजार कर रहा है या नहीं।
इस दृष्टिकोण के साथ समस्या यह है कि पोलिंग सर्वर हर 2 दूसरी बैटरी बहुत तेजी से मारने के लिए लग रहे है, इसलिए मैं ग्राहकों पोलिंग सर्वर के बजाय हो सकता है सोचा, उपयोग APNS को * इसलिए जब सर्वर कुछ नई क्लाइंट के लिए जानकारी **, सर्वर धक्का अधिसूचना* ** क्लाइंट को भेजेगा, तो क्लाइंट सर्वर से डेटा लाएगा।
* एपीएनएस का उपयोग करें - यदि ग्राहक इसे अनुमति देता है, तो क्लाइंट इस विकल्प को अक्षम कर सकता है। तो मैं जांच करूंगा कि ऐप हर बार ऐप फोरग्राउंड में प्रवेश करने की अनुमति देता है और यदि नहीं, तो मैं मतदान दृष्टिकोण पर वापस आऊंगा।
** नई जानकारी टेक्स्ट संदेशों से सर्वर व्यवस्थापक संदेशों में कुछ भी हो सकती है। (और बहुत से व्यवस्थापक संदेश हैं ...)
उदाहरण के लिए, मेरे ऐप उपयोगकर्ता में अपने दोस्तों की स्थिति (ऑनलाइन/ऑफ़लाइन) देख सकते हैं, इसलिए यदि उपयोगकर्ता 1 और उपयोगकर्ता 2 मित्र हैं, और उपयोगकर्ता 2 ऑनलाइन से अपनी स्थिति बदलते हैं ऑफ़लाइन, तो सर्वर को उपयोगकर्ता को यह नई जानकारी (व्यवस्थापक संदेश = user2_offline) भेजने की आवश्यकता है।
***पुश नोटिफिकेशन के सर्वर भेजता खाली हैं (कोई डेटा/ध्वनि के साथ), यह सिर्फ एक ट्रिगर है ग्राहक, नई जानकारी लाने के लिए के लिए ऐसा करता है, तो एक धक्का ग्राहक को भेजा गया था और ग्राहक ऐप करीब था, वह कुछ भी नहीं देखेगा। (यदि ऐप चल रहा है, तो यह सर्वर से नई जानकारी प्राप्त करेगा)
क्या यह दृष्टिकोण बड़े पैमाने पर पुष्ट अधिसूचना के उपयोग के लिए एक विशाल संदेश एप्लिकेशन के साथ काम करेगा?
स्पष्ट होना करने के लिए अपने मुख्य चिंताएं हैं:
1. APNS काफी विश्वसनीय है कि मैं अपने मूल सर्वर से ग्राहक मैसेजिंग तंत्र के रूप में उपयोग कर सकते हैं?
2. क्या सेब संभावित रूप से हजारों या सैकड़ों हजारों को मेरे सर्वर से अधिसूचनाओं को पुश करेगा?
SocketIO (लंबी मतदान) पर एक नज़र डालें के लिए सर्वेक्षण में शामिल नहीं किया है के निर्माण से पहले आप मतदान तंत्र के मालिक हैं। – Till