加入房间并在与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");
});