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

时间:2019-02-12 16:59:45

标签: node.js socket.io

我想有一个容易解决的问题,但我根本找不到。我正在将用户连接到我的node.js服务器,并将套接字重命名为用户名。我还将用户添加到房间中。一切正常,但是如果用户断开连接怎么办?我可以使用forceNew:true,但这肯定只会重试建立新的连接,而不会重命名套接字并加入一个房间。

我正在使用服务器端的“设置”重命名并加入会议室,但是如何在重新连接时自动执行此操作,或者我尝试使用错误的方式进行操作?

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

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);
    });

});

1 个答案:

答案 0 :(得分:0)

我通过立即添加“连接”来做到这一点,并且效果很好。还必须保留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");
});