0
我是node.js的初学者,对不起,如果我出错了。
访问socket.on函数中的请求参数
要获得URL方式通本地主机参数:3000 = ID男人& FM = GILLI我用
app.get('/',function(req, res){
var now = req.query.id;
res.sendfile(__dirname + '/index.html');
});
我怀疑是我想在socket.on函数访问FM,对于我已经试过这样
io.sockets.on('connection',function(socket){
socket.nickname = req.query.fm; //here I accessed it
users[socket.nickname] = socket;
});
但它越来越错误:
req is not defined.
这里的一个条件是我们不应该在全局变量中存储fm参数,意味着我们必须直接访问在io.socket函数中通过url传递的参数。
即:在下面的代码中,fm不应该像id参数那样访问。
我总代码:
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
mongoose = require('mongoose'),
users = {},
now,
other;
server.listen(3000);
app.get('/',function(req, res){
now = req.query.id;
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection',function(socket){
socket.nickname = now; // parameter id stored here using a global variable
users[socket.nickname] = socket;
socket.on('send message',function(data, callback){
var msg = data;
var name = req.query.fm; //here I got error
var msg = msg;
if(name in users){
}else{
callback('Error enter a valid user.');
}
});
});
Thanks.Helped很多 –