2013-04-08 3 views
6

में सॉकेट पर डेटा सहेजें, मैं सॉकेट, सर्वर पक्ष पर कुछ डेटा सहेजना चाहता हूं, इसलिए जब भी ग्राहक सर्वर पर कोई डेटा छोड़ देता है, तो मैं चाहता हूं कि वह डेटा उपलब्ध हो!सॉकेट.आईओ

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

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

मेरा एकमात्र सवाल यह है कि, मैं सॉकेट पर डेटा कहां स्टोर करूं ताकि वह उस ग्राहक से जुड़ा हो?

उत्तर

8
- http://socket.io/#how-to-use स्क्रॉल पर

: डेटा सेट और प्राप्त करने के लिए एसिंक्रोनस रूप

+0

बहुत बहुत धन्यवाद! यह काम करता हैं! :) –

+3

यह विधि socket.io 1.0 पर अब काम नहीं कर रही है, कोई भी संभावित अद्यतन? – dievardump

+1

आईओ.सेट() और io.get() विधियों को 1.0 में बहिष्कृत किया गया है। आपको मिडलवेयर का उपयोग करना होगा। http://socket.io/docs/migrating-from-0-9/ –

0

आप डेटा वैश्विक चर पर बचा सकता है एक ग्राहक के लिए जुड़े

उपयोग socket.set और socket.get भंडारण डेटा जब आप किसी भी डेटाबेस का उपयोग नहीं करना चाहते हैं

var globalVariable = {}; 

io.sockets.on("connection", function (socket) { 

    socket.on("save-client-data", function (clientData) { 
      var clientId = clientData.clientId; 
      globalVariable[clientId] = JSON.parse(clientHandshakeData); 
    }); 

    socket.on("get-client-data", function (clientId) { 

      var clientData = globalVariable[clientId]; 
      socket.emit("get-client-data", JSON.stringify(clientData)); 

    }); 

}); 

यह मेरे परिदृश्य के लिए काम करता है, हालांकि मुझे प्रदर्शन प्रभावों से अवगत नहीं है।

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