我有活动用户列表的管理页面。 它可以工作,但是当“ 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(){})操作。 这导致客户端断开连接...(用户X更改为应用程序内的另一页)原因:传输关闭

服务器代码

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>

仅当浏览器关闭或用户注销时,如何保持用户在页面之间的连接并断开连接

#1楼 票数:0

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

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

检查此答案Ajax加载页面,无需刷新

  ask by Rafael Fernando Fiedler translate from so

未解决问题?本站智能推荐:

1回复

如何获取将数据(.emit())发送到nodejs服务器的用户的详细信息?

我正在尝试使用nodejs , express和socket.io运行的应用程序 服务器端: 客户端: 我的问题是如何获取执行socket.emit('send_stuff',stuff)的客户端(ip,user-agent等)的详细信息? 我想将它传递给newSt
1回复

结合使用Socket.IO和Express和NodeJS导出

我正在尝试将Express和Socket连接连接在一起。 我想我已经整齐地进行了此设置,但是当我想要这样做时却没有: 用户创建一个新房间。 POST到后端Express服务器。 然后, app.post()将输入发送到导出,该导出处理所有数据库连接。 将其保存在数据
1回复

Nodejs,express和socket.io在两个静态客户端页面之间进行通信

我正在尝试通过使用nodejs,express&socket.io为画廊建立一个遥控器。 结构如下 想法是在remote.html显示图像库,选择其中一个,然后使用socket.io将选定的索引发送到screen.html 。 截至目前,我的代码如下所示: index.
1回复

我的 ExpressJS 网站和 socket.io 端口可以使用相同的端口吗?

我一直在编写使用 socket.io 进行实时通信的 ExpressJS 网站,并且我总是使用相同的端口 为 websocket 和 express 服务器使用相同的端口是否安全/健康的做法。 它会导致任何问题吗?
1回复

如何使用(socket.io)发出socket函数之外的函数 - nodejs,express

我有以下代码 var app = require('express')(); var http = require('http'); var server = http.createServer(); var socket = require('socket.io'); var io = so
1回复

在使用socket.io时让当前用户进入express.js?

我使用的是express框架,部分Web应用程序使用socket.io启用实时聊天。 我需要获取当前用户的用户名,并在其中创建一个房间。 问题是当socket.on('connection')被调用时,我找不到一种获取用户信息的方法。 这是我到目前为止的相关代码: 最后一个功能是我
1回复

NodeJS&Express&socket.io错误:无法获取/

我发现此脚本用于读取文件,并将其内容“广播”到每个连接。 服务器启动没有错误,到目前为止一切正常。 但是,如果我尝试通过ip:port连接到服务器,则会收到以下消息: 不能获取 / 我在本地计算机上测试了此脚本,并在几周前成功了。据我所知,或者我认为缺少路由,或者?
1回复

有没有一种方法可以从NodeJS触发socket.io连接事件?

我正在尝试在NodeJS上使用socket.io做一些事情,但我不知道如何(仅)从NodeJS触发套接字。 到目前为止,我是通过从前端调用socket.io来使用它的,但是我想知道是否可以做与前端相同的操作,但是这次是在nodeJS部分(服务器端)执行的。 我的猜测是不可能的,因为需