【问题标题】:Keep connected users through website pages using nodejs使用 nodejs 通过网站页面保持连接的用户
【发布时间】:2020-01-19 21:49:29
【问题描述】:

我有包含活跃用户列表的管理页面。它可以工作,但是当“userX”更改到另一个页面时,所有客户端都会更新,活动用户列表中没有“userX”。 1 秒前“userX”返回活跃用户列表。

服务器控制台

UserX connected...
UserX disconnected... (UserX change to another page inside application)
Reason: transport close
UserX connected... (Because main layout force connection) 

当“userX”切换到另一个页面时,nodejs 触发 socket.on('disconnect',function(){}) 动作。 这会导致 客户端断开连接...(UserX 更改为应用程序内的另一个页面) 原因:交通不便

服务器代码

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

server.listen(81, function () {
    console.log('NodeJs listening on port:81');
});


io.on('connection', function (socket) {
    console.log('New client connected...');

    socket.on('disconnect', function (reason) {
        console.log('Client disconnected...');
        console.log('Reason: ' + reason);
    });

});

页面代码

 <script type="text/javascript">
            var socket = io(':81', {forceNew: true});
 </script>

如何让用户在页面之间保持连接并仅在浏览器关闭或用户退出时触发断开连接

【问题讨论】:

    标签: node.js sockets express socket.io


    【解决方案1】:

    如果您使用页面重定向来更改页面,则页面将被刷新。每次刷新页面时,套接字都会断开。

    为此,您必须使用internal routingload another page

    检查这个答案 Ajax load page without refresh

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-25
      • 2014-07-15
      • 2015-03-21
      • 2018-05-15
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 2017-06-19
      相关资源
      最近更新 更多