2012-09-30 21 views
5

मैं एक एसपीए (एकल पृष्ठ वेब ऐप) पर काम कर रहा हूं; विचार हल्का वजन जाना था और बहुत अधिक ढांचे और अमूर्तता और सामान का उपयोग नहीं करना था, इसलिए मैंने स्थैतिक + गतिशील फ़ाइलों के लिए HTTP सर्वर बनाया और यह अच्छी तरह से काम करता है। अब मैंने वेब ऐप में सॉकेट.ओओ लागू किया है, लेकिन मैं जानना चाहता हूं कि आपकी राय में सत्रों को संभालने का एक अच्छा तरीका क्या होगा (ध्यान रखें कि सॉकेट आईओ उपयोगकर्ता को पहचानने में सक्षम होना चाहिए जो कार्यों को कॉल करता है और जानता है इसे डेटा धक्का देना चाहिए)। आशा है कि मैं काफी स्पष्ट किया गया है :)फ्रेमवर्क के बिना node.js में सत्रों को कैसे संभालें

+4

मौजूदा समाधानों को पुन: कार्यान्वित करने से आपका एप्लिकेशन हल्का नहीं होता है। [कनेक्ट] जैसे फ्रेमवर्क (http://www.senchalabs.org/connect/) पहले से ही बहुत हल्के वजन वाले हैं। – lanzz

उत्तर

1

Socket.io socket.get, socket.set और socket.del द्वारा किसी दी गई सॉकेट के लिए सर्वर-साइड सत्र डेटा को बचाने के लिए तरीकों में निर्माण किया है। जहां यह डेटा सहेजता है डिफ़ॉल्ट रूप से एक मेमोरीस्टोर होता है, लेकिन आप रेडिस आदि का उपयोग कर सकते हैं। ध्यान रखें कि जब सॉकेट डिस्कनेक्ट हो जाता है, तो वह डेटा फिर से कनेक्ट नहीं होता है, इसलिए आप अपने साथ क्लाइंट पहचान डेटा को भेजना चाहेंगे सॉकेट सेटअप घटनाओं या ऑथ के दौरान।

तो यह आपके क्लाइंट डेटा को छोड़ देता है, जिसे स्थानीय स्टोरेज, सत्र स्टोरेज, या सादा पुरानी वेनिला कुकीज़ के माध्यम से दूसरों के बीच रखा जा सकता है।

+0

ठीक है धन्यवाद, क्या आपको लगता है कि http://www.codeproject.com/Articles/382561/ सत्र- प्रबंधन-in-Nodejs यह सही होगा? – Rayjax

+1

यह मेरे लिए थोड़ा अधिक लगता है, लेकिन मुझे आपके उपयोग के मामले को नहीं पता है। यदि आप हल्के रहने की कोशिश कर रहे हैं तो मैं आपको एक और मॉड्यूल में जोड़ने से पहले अपने मूल समाधान को रोल करने के लिए प्रोत्साहित करता हूं: https://github.com/learnboost/socket.io#storing-data-associated-to-a- ग्राहक –