我创建聊天应用程序,使用nodejs(0.8.15),为注册用户表达(> 3.0)框架和mongodb。nodejs,socket.io:如何从套接字函数中获取请求和响应?
var express = require('express')
, http = require('http')
, path = require('path')
, io = require('socket.io');
var app = express()
, server = http.createServer(app)
, io = io.listen(server);
app.configure(function() {
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.methodOverride());
app.use(express.cookieParser('secret'));
app.use(express.session({cookie: {maxAge: 60000*100}}));
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function() {
app.use(express.errorHandler());
});
app.get('/chat', function(req, res) {
res.render('chat');
});
server.listen(app.get('port'), function() {
console.log("Express server listening on port " + app.get('port'));
});
io.sockets.on('connection', function (socket) {
socket.on('start-chat', function() {
// here i need to know req and res
// for example, i need to write:
// socket.username = req.session.username;
});
});
问:如何获得res和req对象在与上面的代码一样聊天时与他们一起工作?或者我会错误地创建与用户身份验证聊天的方式?
谢谢!
编辑:答案就在这里 http://www.danielbaulig.de/socket-ioexpress/
这是不对的。这与要求提出的请求不同。你不会在上面的socket.request中找到你的请求参数。 –