Skip to content

Instantly share code, notes, and snippets.

@6174
Created August 17, 2013 03:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save 6174/6255126 to your computer and use it in GitHub Desktop.
Save 6174/6255126 to your computer and use it in GitHub Desktop.
set session id to socket in nodejs
/**
* 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