我知道socket.io有一个内置的重新连接功能,但是我认为它并没有起作用-从其他人那里的经验来看,它对他们也没有起作用。
如果用户将计算机休眠,它会使其断开连接,然后当他们再次打开计算机时,他们将不再连接,因此他们在刷新页面之前不能收到任何通知或其他内容。也许只是我做错了什么?
如果用户将计算机休眠,它会使其断开连接,然后当他们再次打开计算机时,他们将不再连接,因此他们在刷新页面之前不能收到任何通知或其他内容。也许只是我做错了什么?
var io = require('socket.io').listen(8080);
var users = {};
////////////////USER CONNECTED/////
console.log("Sever is now running");
io.sockets.on('connection', function (socket) {
//Tell the client that they are connected
socket.emit('connected');
//Once the users session is recieved
socket.on('session', function (session) {
//Add users to users variable
users[socket.id] = {userID:session, socketID:socket};
//When user disconnects
socket.on('disconnect', function () {
//socket.socket.connect();
var count= 0;
for(var key in users){
if(users[key].userID==session)++count;
if(count== 2) break;
}
if(count== 1){
socket.broadcast.emit('disconnect', { data : session});
}
//Remove users session id from users variable
delete users[socket.id];
});
socket.on('error', function (err) {
//socket.socket.connect();
});
socket.emit("connection")
需要在用户重新连接时调用,或者至少需要调用该事件中发生的事件。
另外,socket.socket.connect();
不起作用,它会返回一个错误,并且会以“connect不存在”的错误关闭套接字服务器。