Javascript Node.js Socket.io为每个页面分离连接事件

Javascript Node.js Socket.io为每个页面分离连接事件,javascript,node.js,sockets,express,socket.io,Javascript,Node.js,Sockets,Express,Socket.io,我从Socket.io文档页面获取了以下代码 var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(80); app.use(express.static(__dirname + '/public')); io.on('connection', function (socket) { so

我从Socket.io文档页面获取了以下代码

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(80);

app.use(express.static(__dirname + '/public'));

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
我希望根据发出请求的页面有一个单独的“连接”事件。例如

从“索引”页连接的客户端触发此事件

io.on('connection', function (socket) {
  console.log('connected from the index page');
});
及 从“玩家分数”页面连接的客户端触发此事件

io.on('connection', function (socket) {
  console.log('connected from the index page');
});
我考虑过使用名称空间。有没有一种方法可以做到这一点,而无需客户端指定它已从特定页面连接


关于,

您可以使用套接字对象中的握手数据来获取URL,然后在if语句中编程不同的逻辑片段。大致如下:

io.on('connection', function (socket) {
  if(socket.handshake.url == "index url you expect"){
    console.log('connected from the index page');
  } else if(socket.handshake.url == "player scores url you expect"){
    console.log('connected from the player scores page');
  }
});