【问题标题】:Two websocket override session value两个 websocket 覆盖会话值
【发布时间】:2012-06-06 13:24:20
【问题描述】:

我制作了两个监听端口 1234 和 5678 的 Web 应用程序。(我使用的是 Express js)

我在登录时存储了一些会话值。假设我在第一个应用程序(端口 1234)上登录时在会话中存储了一些字符串(如:“person1”),然后在第二个应用程序(在端口 5678)上登录时,我在会话中存储了一些字符串(如:“person2”)。当person2当时登录第二个应用程序时,它会破坏第一个应用程序的会话(!!?)然后如果我刷新页面,它会由于会话破坏而注销。

服务器端连接(第一个监听 1234 端口的应用程序)

var express = require('express'),
    sio = require('socket.io');

app = express.createServer();

app.configure('development', function(){
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({secret: "hello1"}));
    app.use(express.static(__dirname + '/'));
    app.set('views', __dirname + '/views');
    app.use(express.errorHandler({dumpExceptions: true, showStack: true}));
    app.use(app.router);
});

app.listen(1234);
app.get('/login', function (req, res) {
    req.session.uName = req.body.uName;
    .
    .
    .
    .
    .
});
var io = sio.listen(app);

服务器端连接(侦听端口 5678 的第二个应用程序)

app.get('/login', function (req, res) {
    req.session.uName = req.body.uName;
    .
    .
    .
    .
    .
});
app.listen(5678);
var io = sio.listen(app);

================================================ ============================

客户端连接(第一个应用程序 [1234])

<script type="text/javascript" src="/socket.io/socket.io.js" ></script>
<script>
      var socket = io.connect("http://"+mylocalip+":1234");
</script>

客户端连接(第二个应用程序 [5678])

<script type="text/javascript" src="/socket.io/socket.io.js" ></script>
<script>
      var socket = io.connect("http://"+mylocalip+":5678");
</script>

请帮帮我...

提前致谢。

【问题讨论】:

    标签: node.js socket.io express


    【解决方案1】:

    您的两个应用都使用 Express(以及 Connect)的 MemoryStore 来存储会话数据。每个应用程序都会创建自己的 MemoryStore 对象,因此彼此都不知道对方的会话数据。

    要么使用其他一些会话存储方法(例如 redis),要么定义你自己的存储方法(参见Connect's documentation)以使用两个应用程序之间共享的对象(假设它们都是同一个 node.js 的一部分过程)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多