|
var express = require('express'), |
|
app = express.createServer(), |
|
sio = require('socket.io'), |
|
redis = require("redis"), |
|
client = redis.createClient(), |
|
io = null; |
|
|
|
/** |
|
* Used to parse cookie |
|
*/ |
|
function parse_cookies(_cookies) { |
|
var cookies = {}; |
|
|
|
_cookies && _cookies.split(';').forEach(function( cookie ) { |
|
var parts = cookie.split('='); |
|
cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim(); |
|
}); |
|
|
|
return cookies; |
|
} |
|
|
|
app.listen(3000, "localhost"); |
|
io = sio.listen(app); |
|
|
|
io.configure(function () { |
|
function auth (data, fn) { |
|
var cookies = parse_cookies(data.headers.cookie); |
|
console.log('PHPSESSID: ' + cookies.PHPSESSID); |
|
|
|
client.sismember('sid', cookies.PHPSESSID, function (err , reply) { |
|
fn(null, reply); |
|
}); |
|
}; |
|
|
|
io.set('authorization', auth); |
|
}); |
|
|
|
io.sockets.on('connection', function (socket) { |
|
socket.emit('access', 'granted'); |
|
}); |