Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

मैं रेडिस, एक्सप्रेस और सॉकेट का उपयोग करके काम करने के लिए सत्र कैसे प्राप्त कर सकता हूं।

io.configure . के अंदर , आपको सॉकेट को http सत्र से जोड़ना होगा।

यहां कोड का एक टुकड़ा है जो कुकी को निकालता है (यह xhr-polling के साथ socket.io का उपयोग कर रहा है , मुझे नहीं पता कि यह वेबसोकेट के लिए काम करेगा, हालांकि मुझे संदेह है कि यह काम करेगा)।

var cookie = require('cookie');
var connect = require('connect');

var sessionStore = new RedisStore({
  client: redis // the redis client
});

socketio.set('authorization', function(data, cb) {
  if (data.headers.cookie) {
    var sessionCookie = cookie.parse(data.headers.cookie);
    var sessionID = connect.utils.parseSignedCookie(sessionCookie['connect.sid'], secret);
    sessionStore.get(sessionID, function(err, session) {
      if (err || !session) {
        cb('Error', false);
      } else {
        data.session = session;
        data.sessionID = sessionID;
        cb(null, true);
      }
    });
  } else {
    cb('No cookie', false);
  }
});

फिर आप निम्न का उपयोग करके सत्र तक पहुंच सकते हैं:

socket.on("selector", function(data, reply) {
  var session = this.handshake.session;
  ...
}

इसका अतिरिक्त लाभ यह भी है कि यह जांचता है कि एक वैध सत्र है, इसलिए केवल आपके लॉग इन उपयोगकर्ता ही सॉकेट का उपयोग कर सकते हैं। हालाँकि, आप एक भिन्न तर्क का उपयोग कर सकते हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस हाइबरनेट दूसरे स्तर के कैश के रूप में

  2. ई-कॉमर्स एपीआई नोड-जेएस, टाइपस्क्रिप्ट, पोस्टग्रेएसक्यूएल, रेडिस और काफ्का के साथ बनाया गया

  3. रेडिस और पायथन का उपयोग करके एक विशिष्ट प्राप्तकर्ता द्वारा उपभोग किए जाने वाले विफल-सुरक्षित संदेश प्रसारण

  4. डोकर से रेडिस से कनेक्ट करने में असमर्थ

  5. साइडकीक को रेल सक्रिय नौकरी के लिए रिकॉर्ड नहीं मिल रहा है