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;
...
}
इसका अतिरिक्त लाभ यह भी है कि यह जांचता है कि एक वैध सत्र है, इसलिए केवल आपके लॉग इन उपयोगकर्ता ही सॉकेट का उपयोग कर सकते हैं। हालाँकि, आप एक भिन्न तर्क का उपयोग कर सकते हैं।