Javascript 访问socket.on函数中的请求参数
我是node.js的初学者,如果我出错了,很抱歉。Javascript 访问socket.on函数中的请求参数,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我是node.js的初学者,如果我出错了,很抱歉。 为了获得在URL中传递的参数,比如localhost:3000?id=man&fm=gilli,我使用了 app.get('/',function(req, res){ var now = req.query.id; res.sendfile(__dirname + '/index.html'); }); 我的疑问是我想访问socket.on函数中的fm,因为我已经这样尝试过了 io
为了获得在URL中传递的参数,比如localhost:3000?id=man&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中传递的参数
i、 e:在下面的代码中,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.');
}
});
});
您需要实现授权 在Express中,当套接字连接时,默认情况下我们不知道它属于哪个会话,这意味着我们不能对该连接执行任何私有操作