Skip to content

Instantly share code, notes, and snippets.

@lordnox
Created May 27, 2011 09:59
Show Gist options
  • Save lordnox/994978 to your computer and use it in GitHub Desktop.
Save lordnox/994978 to your computer and use it in GitHub Desktop.
Express / Socket.IO sessions issue
// [~/Documents/code/node/myapp](master)$ ./bin/node -v
// => v0.2.1
// [~/Documents/code/node/myapp](master)$ ./bin/express -v
// => 1.0.0rc4
/**
* Module dependencies.
*/
require.paths.unshift(__dirname + '/lib/node');
var express = require('express');
var less = require('less');
var mylib = require('mylib');
var rStore = require('connect-redis');
var io = require('socket.io-node');
var app = module.exports = express.createServer();
// Dynamic Helpers
app.dynamicHelpers({
current_user: function(req) {
return req.session.user;
}
});
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyDecoder());
app.use(express.methodOverride());
app.use(express.cookieDecoder());
app.use(express.session({ store: new rStore }));
app.use(app.router);
app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
app.use(express.staticProvider(__dirname + '/public'));
});
app.configure('development', function() {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function() {
app.use(express.errorHandler());
});
// Routes
app.get('/', function(req, res) {
if (!req.session.user) {
res.render('index', {
locals: {
title: 'Home',
viewport: 'width=device-width, initial-scale=1.0',
http_equiv: 'IE=edge,chrome=1'
}
});
} else {
res.redirect('/success');
}
});
// Only listen on $ node app.js
if (!module.parent) {
app.listen(3000);
console.log("Express server listening on port %d", app.address().port)
}
// Socket.IO
var socket = io.listen(app);
socket.on('connection', function(client) {
var session_data = client.listener.server.dynamicViewHelpers;
var c_user = session_data.current_user();
console.log(c_user);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment