我从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');
});
我考虑使用命名空间。有没有一种方法可以做到这一点,而无需客户端指定它已从特定页面连接?
此致
答案 0 :(得分:0)
您可以使用套接字对象中的握手数据来获取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');
}
});