【问题标题】:Meteor WebSocket is already in CLOSING or CLOSED state errorMeteor WebSocket 已处于 CLOSING 或 CLOSED 状态错误
【发布时间】:2016-10-26 10:36:04
【问题描述】:

在实现Detecting idle time in JavaScript elegantly 后,我在浏览器控制台中收到“WebSocket 已处于 CLOSING 或 CLOSED 状态”错误。如何解决这个问题?这是我的代码:

    var inactivityTime = function () {
        var t;
        window.onload = resetTimer;
        document.onmousemove = resetTimer;
        document.onkeypress = resetTimer;

        function detector() {
            alert("You are idle!");
        }


        function resetTimer() {
            console.log("RESET!");
            clearTimeout(t);
            t = setTimeout(detector, 10000)

            // 1000 milisec = 1 sec
        }
    };

Template.myTemplate.onRendered(function(){
    inactivityTime();
});

【问题讨论】:

    标签: meteor meteor-blaze


    【解决方案1】:

    当 t 可能尚未初始化时,您正在调用 clearTimeout(t) - 您应该先检查一个值

    【讨论】:

    • 我用 if() 检查过,但没有帮助:if(t) clearTimeout(t);
    • 好的,我解决了这个问题。刚刚将 set/clearTimeout 更改为 Meteor.set/clearTimeout。不过,我会接受你的回答,因为它也很有帮助。
    • 嗯,有人欢呼太快了:(错误仍然存​​在。
    • 一分钟成功,然后又失败了?你的代码现在是什么样子的
    • 我的代码是一样的。如果出现警报消息(第一次超时)并单击“确定”(警报消息),我不会收到错误消息。但是,如果出现警报消息并且我等待第二次超时而不单击“确定”,则会收到此错误。如果我可以禁用第二个超时,只要我没有单击确定,它可能会解决这个问题。但是,我不知道该怎么做。
    猜你喜欢
    • 2016-09-09
    • 2014-09-10
    • 2019-04-13
    • 2018-07-06
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多