最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

加入房间并在与socket.io和node.js断开连接时自动重新加入房间

IT培训 admin 8浏览 0评论

加入房间并在与socket.io和node.js断开连接时自动重新加入房间

我有一个问题,我想有一个简单的解决方案,但我根本找不到它。我将用户连接到我的node.js服务器并将套接字重命名为用户名。我也将用户添加到一个房间。一切正常但如果用户断开连接会发生什么?我可以使用forceNew:true但这肯定只会重新尝试建立一个新连接而不是重命名套接字并加入一个房间。

我正在使用服务器端'setup'来重命名和加入空间,但是我如何在重新连接时自动执行此操作,或者我是否尝试以错误的方式执行此操作?

所以在我的客户端,我这样连接:

var socket = io.connect('http://localhost:8080' ,{'forceNew':true});

var job_id = "100102";
var client_id = "test1";

socket.emit('setup', client_id, job_id);

服务器端是:

io.on('connection', (socket) => {

 socket.on('setup', (username, job_id) => {
    socket.id = username;
    socket.join(job_id);
    });

});
回答如下:

我这样做是通过直接添加'连接'来实现的。必须保持forceNew:true

服务器端

io.on('connection', (socket) => {
    socket.emit("connection");
 });

客户端

socket.on('connection', () => {
socket.emit('signin', client_id, job_id);
socket.emit('check', job_id, client_id);
console.log("CONNECTED");
});

加入房间并在与socket.io和node.js断开连接时自动重新加入房间

我有一个问题,我想有一个简单的解决方案,但我根本找不到它。我将用户连接到我的node.js服务器并将套接字重命名为用户名。我也将用户添加到一个房间。一切正常但如果用户断开连接会发生什么?我可以使用forceNew:true但这肯定只会重新尝试建立一个新连接而不是重命名套接字并加入一个房间。

我正在使用服务器端'setup'来重命名和加入空间,但是我如何在重新连接时自动执行此操作,或者我是否尝试以错误的方式执行此操作?

所以在我的客户端,我这样连接:

var socket = io.connect('http://localhost:8080' ,{'forceNew':true});

var job_id = "100102";
var client_id = "test1";

socket.emit('setup', client_id, job_id);

服务器端是:

io.on('connection', (socket) => {

 socket.on('setup', (username, job_id) => {
    socket.id = username;
    socket.join(job_id);
    });

});
回答如下:

我这样做是通过直接添加'连接'来实现的。必须保持forceNew:true

服务器端

io.on('connection', (socket) => {
    socket.emit("connection");
 });

客户端

socket.on('connection', () => {
socket.emit('signin', client_id, job_id);
socket.emit('check', job_id, client_id);
console.log("CONNECTED");
});
发布评论

评论列表 (0)

  1. 暂无评论