通过多个页面将变量保存在socket.io中

时间:2014-12-27 08:28:38

标签: node.js session express socket.io

我对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的会话中间件,但我似乎无法工作。我很确定使用会话是最好的方法,但我不知道如何实现它们。有关设置可通过不同页面访问的会话的任何建议也很不错。

谢谢!

1 个答案:

答案 0 :(得分:0)

你必须使用快速会话和握手:

    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