2015-11-18 4 views
6

मेरे पास एक विरासत सेल है। जेएस प्रोजेक्ट जो वर्तमान में सेल संस्करण 0.10.5 पर है। मैं इस परियोजना को सेल 0.11.x और आगे की ओर अपग्रेड करना चाहता हूं, लेकिन एक पकड़ है। यह प्रोजेक्ट मूल मोबाइल ऐप के बैकएंड के रूप में कार्य करता है, इसलिए वेब सर्वर को अपग्रेड करने के विपरीत, जहां आप अपनी वेबसाइट में नए sails.io.js और socket.io क्लाइंट लाइब्रेरी को लिंक कर सकते हैं, हम मूल ऐप को अपग्रेड करने के लिए उपयोगकर्ताओं पर भरोसा नहीं कर सकते ।सेल से जेड 0.10 से 0.11 बैकवर्ड संगतता बनाए रखना

ऐसा लगता है कि मैं इस मुद्दे का सामना करने वाला अकेला हूं, इसलिए मैंने समुदाय को यह सवाल उठाने के लिए सोचा कि क्या कुछ शानदार है कि मैंने अपग्रेड को निर्बाध बनाने के बारे में नहीं सोचा है।

विचारों मैं के बारे में सोचा गया है कर रहे हैं:

  1. भागो उप डोमेन का उपयोग कर आवेदन के दो संस्करणों (https://v2.domain.com/api/..।)। यह स्पष्ट रूप से सबसे स्पष्ट समाधान है, लेकिन सर्वर कॉन्फ़िगरेशन की उचित मात्रा की आवश्यकता होती है और हम वर्तमान में एक पीएएएस पर चल रहे हैं जिसमें पर्यावरण को अनुकूलित करने की सीमित क्षमता है, इसलिए इसकी संभावना स्विचिंग प्रदाताओं की आवश्यकता होगी।

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

  2. sails.js कोर कोड के माध्यम से खोदें, और socket.io 0.9 और socket.io 1.0 को एक साथ एक साथ चलाने के लिए एक तरीका ढूंढें। यह मुझे 0.9 उपयोगकर्ताओं को बंद करने से पहले सभी उपयोगकर्ताओं को अपने मोबाइल ऐप को अपडेट करने की अनुमति देगा। इसके अलावा स्पष्ट नुकसान भी है, हालांकि उनमें से प्रमुख ढांचे के स्तर पर इस तरह के व्यापक परिवर्तन कर रहे हैं।

मैं क्या दूसरों को इस स्थिति में किया है समाधान सिर्फ पाल 0.10.5 ठीक तो निश्चित ही पर रहने के लिए है में कुछ अंतर्दृष्टि खुशी होगी, लेकिन मैं के अतिरिक्त लाभ प्राप्त करके प्रसन्नता होगी देशी सॉकेट.आईओ पुस्तकालय जो कि वर्तमान में उपयोग कर रहे अर्ध-घर स्पून समाधान के बजाय v.1.0 के लिए बाहर आए हैं। इसके अलावा सुरक्षा और फीचर अपडेट आगे बढ़ना जारी रखना अच्छा होगा।

+0

हमें एक ही समस्या का सामना करना पड़ रहा है - हमारे पास सैकड़ों क्लाइंट ऐप्स हैं जो पुराने socket.io क्लाइंट (ऐप में पैक किए गए) का उपयोग कर रहे हैं। हमें प्रत्येक क्लाइंट के लिए सर्वर के 2 सेट चलाने होंगे - पुराने 0.10 वाले और नई सेल 0.12 वाले। बस सोच रहा है कि क्या आपने समाधान लागू किया है, और यह आपके लिए कैसे चला गया? –

+0

मुझे इस पर कुछ भी नहीं मिला, हम संक्षेप में दो सर्वर चला रहे थे। यह बहुत निराशाजनक था, लेकिन संक्रमण करने का एकमात्र निश्चित तरीका था। क्षमा करें मैं अधिक सहायता नहीं कर सकता। – Trey

उत्तर

0

इस समस्या का एकमात्र निश्चित अग्नि समाधान एक nginx रिवर्स प्रॉक्सी स्थापित करना होगा जिसमें आपका वर्तमान सर्वर आधार के रूप में होगा और फिर प्रत्येक पथ के निर्माण से पहले/v2 पथ prefixed के साथ एक और सर्वर होगा, फिर उपयोगकर्ताओं को/v2 में माइग्रेट करें जिस मार्ग के रूप में आप सक्षम हैं, मैं दोनों सर्वरों के लिए एक ही गिट रेपो का उपयोग करने की सिफारिश करता हूं लेकिन उन्हें विभिन्न शाखाओं पर बनाए रखता हूं ताकि यदि आवश्यक हो तो आप दोनों में नए बदलावों को विलय कर सकते हैं।

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