【问题标题】:Keeping variables in socket.io through multiple pages通过多个页面将变量保存在 socket.io 中
【发布时间】:2025-11-29 20:25:06
【问题描述】:

我对 node.js 和 socket.io 还很陌生,所以其中一些问题可能看起来很愚蠢。话虽如此,我一直在尝试开发一个可以在不同页面之间存储用户名的应用程序。例如,我在一页上设置了我的用户名。然后我被重定向到另一个页面,但我的用户名仍然作为套接字连接中可访问的变量。

这是我的基本服务器设置:

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

app.get('/set', function(req, res){
    res.sendfile('set.html');
});

app.get('/get', function(req, res){
    res.sendfile('get.html');
});


io.on('connection', function(socket){



});


http.listen(3000, function(){
  console.log('listening on *:3000');
});

我的问题是:

1.) 有可能知道套接字当前在哪个页面上?如果是这样,怎么做?

2.) 如何与 io.on(...) 中的信息进行交互?

我已经尝试使用 socket.io 和 express 的会话中间件,但我似乎无法正常工作。我很确定使用会话是最好的方法,但我不知道如何实现它们。任何有关设置可通过不同页面访问的会话的建议也很好。

谢谢!

【问题讨论】:

标签: node.js session express socket.io


【解决方案1】:

您必须为此使用快速会话和握手:

    sock.on('your_socket_name', function (data) {
       sock.handhsake.session.name = data.name;
       sock.handshake.session.save();
    });

通过这个链接,它一定会帮助你:

https://www.npmjs.com/package/socket.io-handshake

【讨论】:

    最近更新 更多