Created
August 17, 2013 03:31
-
-
Save 6174/6255126 to your computer and use it in GitHub Desktop.
set session id to socket in nodejs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Module dependencies. | |
*/ | |
var express = require('express'); | |
var routes = require('./routes'); | |
var user = require('./routes/user'); | |
var http = require('http'); | |
var path = require('path'); | |
var app = express(); | |
// all environments | |
app.set('port', process.env.PORT || 3000); | |
app.set('views', __dirname + '/views'); | |
app.set('view engine', 'ejs'); | |
app.use(express.favicon()); | |
app.use(express.logger('dev')); | |
app.use(express.bodyParser()); | |
app.use(express.cookieParser()); | |
app.use(express.methodOverride()); | |
app.use(express.cookieParser('your secret here')); | |
app.use(express.session({ | |
secret: 'secret', | |
key: 'express.sid' | |
})); | |
app.use(app.router); | |
app.use(express.static(path.join(__dirname, '/../public'))); | |
console.log(path.join(__dirname, '../public')); | |
// development only | |
if ('development' == app.get('env')) { | |
app.use(express.errorHandler()); | |
} | |
app.get('/', routes.index); | |
app.get('/teacher', routes.teacher); | |
app.get('/blackbord', routes.blackbord); | |
app.get('/users', user.list); | |
var server = http.createServer(app); | |
server.listen(app.get('port'), function() { | |
console.log('Express server listening on port ' + app.get('port')); | |
}); | |
function test() { | |
console.log('test pass a func'); | |
} | |
//////////////////////////////////////////////////////////////////////////// | |
//////////////////////////////////////////////////////////////////////////// | |
var teacherSocket; | |
var studentSocket; | |
var roomId = "123456"; | |
//----socketIo | |
var io = require('socket.io').listen(server); | |
//----set sessionID | |
var cookie = require("cookie"); | |
io.set('authorization', function (data, accept) { | |
// check if there's a cookie header | |
if (data.headers.cookie) { | |
// session id, as you specified in the Express setup. | |
data.sessionID = cookie.parse(data.headers["cookie"])["express.sid"]; | |
} else { | |
// if there isn't, turn down the connection with a message | |
// and leave the function. | |
return accept('No cookie transmitted.', false); | |
} | |
// accept the incoming connection | |
accept(null, true); | |
}); | |
io.sockets.on('connection', function(socket) { | |
console.log('sesssionID', socket.handshake.sessionID); | |
socket.join(socket.handshake.sessionID); | |
//--- 通过 辨别身份 | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment