首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除套接字表单数组工作不正确

移除套接字表单数组工作不正确
EN

Stack Overflow用户
提问于 2016-05-22 01:29:41
回答 1查看 64关注 0票数 2

当我快速刷新浏览器时,有时套接字对象不会从数组中删除,如果我离开它一分钟,它会减少到5或6,但永远不会回到1个连接。

代码语言:javascript
复制
var io = require('socket.io').listen(server);
io.sockets.on('connection', function(socket){
    users.push(socket);
    var my_index = users.indexOf(socket);
    console.log("Im number " + (my_index+1) + " form " + users.length);
    var timer = setInterval(function(){
        socket.emit('date', {'date': new Date()});
    }, 1000);

    initSocketData(socket);

    socket.on('client_data', function(data){
        for (var i = 0, len = users.length; i < len; i++) {
           users[i].emit('a_in', {'a_in': data});
        }
    });

    socket.on('disconnect', function(socket){
        clearInterval(timer)
        if (my_index > -1) {
            users.splice(my_index, 1);
        }
    });
});

和控制台输出

代码语言:javascript
复制
$ node socket.js
Im number 1 form 1
Im number 1 form 1
Im number 1 form 1
Im number 1 form 1
Im number 2 form 2
Im number 3 form 3
Im number 4 form 4
Im number 5 form 5
Im number 6 form 6
Im number 6 form 6
Im number 7 form 7
Im number 8 form 8
Im number 9 form 9
Im number 9 form 9
Im number 10 form 10
Im number 11 form 11
EN

回答 1

Stack Overflow用户

发布于 2016-05-22 19:34:59

使用sync disconnect on unload标志告诉客户端确实在窗口关闭时发送断开连接包。

代码语言:javascript
复制
io.connect('http://adress/', {'sync disconnect on unload':true});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37366079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档