Skip to content

Instantly share code, notes, and snippets.

@momo1113
Forked from 6174/socket.io.sessionID.js
Created April 6, 2021 02:23
Show Gist options
  • Save momo1113/49e979b23634d8d6bdf505364ddd824b to your computer and use it in GitHub Desktop.
Save momo1113/49e979b23634d8d6bdf505364ddd824b to your computer and use it in GitHub Desktop.

Revisions

  1. @6174 6174 created this gist Aug 17, 2013.
    83 changes: 83 additions & 0 deletions socket.io.sessionID.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,83 @@
    /**
    * 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);
    //--- 通过 辨别身份
    });