首页 > 解决方案 > 访问其他HTML页面时如何避免与当前socket.io连接断开

问题描述

`var express = require('express');

var app = express();

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

var socket = require('socket.io');
var io = socket.listen(server);
server.listen(process.env.PORT || 3000);

var session = require('express-session')({
    secret: 'my_secret',
    resave: true,
    saveUninitialized: true
});
var sharedsession = require('express-socket.io-session');
app.use(session);
io.use(sharedsession(session));

app.use(express.static('public'), function (req, res, next) {
    //req.accepts('html');
    next();
});




io.on('connection', function (socket) {
    console.log('new connection ' + socket.id);

    io.emit('socket', socket.id);

    socket.handshake.session.userdata = socket.id;
    socket.handshake.session.save();
});

`我正在使用 express、node 和 socket.io 构建一个站点。我正在尝试实现与实际页面不同的登录页面。如何解决用户在访问登录页面时与当前 socket.io 连接断开的问题?

我尝试实现 express-session 和 express-socket-io-session 来创建会话,希望用户在尝试从当前页面访问登录页面时保持连接。

我想跟踪在他访问登录页面期间连接到 socket.io 连接的用户以及在他登录后被重定向到主页。

标签: javascripthtmlnode.jsexpresssocket.io

解决方案


推荐阅读