【问题标题】:Nodejs client connection close safelyNodejs客户端连接安全关闭
【发布时间】:2020-03-04 16:12:27
【问题描述】:

我是 Nodejs 的新手,我正在使用 nodejs websocket 尝试与客户端应用程序通信。我需要帮助的是安全地关闭客户端连接,同时不会使我的 nodejs 服务器崩溃。更具体地说,在 nodejs 服务器向客户端发送回消息之前检查是否存在连接。

客户端应用代码

function tuneIn(){
    connection = new WebSocket('ws://localhost:8001');
    connection.onmessage = function (event) { 
        document.getElementById('currentScore').innerHTML=event.data;
    };
}

tuneInButton.addEventListener('click', tuneIn);

function tuneOut(){
    connection.close();
}
tuneOutButton.addEventListener('click', tuneOut);

节点js代码

var ws = require("nodejs-websocket");

var server = ws.createServer(function (conn) {

    console.log("New connection");
    var score = 0;
    setInterval(function(){ 
        conn.sendText(score.toString());
        score++; 
    }, 1000);


    conn.on("disconnect", function (code, reason) {
        console.log("Connection closed")
    })
}).listen(8001)

【问题讨论】:

    标签: html node.js websocket


    【解决方案1】:

    当 websocket 断开连接时,为什么不停止间隔计时器?

    const ws = require("nodejs-websocket");
    
    const server = ws.createServer(function (conn) {
    
        console.log("New connection");
        let score = 0;
        let timer = setInterval(function(){ 
            conn.sendText(score.toString());
            score++; 
        }, 1000);
    
    
        conn.on("disconnect", function (code, reason) {
            clearInterval(timer);
            console.log("Connection closed")
        })
    }).listen(8001)
    

    【讨论】:

    • @axesspwns - 这回答了你的问题吗?如果是这样,您可以通过单击答案左侧的复选标记在此处向社区表明这一点。这也将为您在 stackoverflow 上赢得一些声誉点,以遵循正确的程序。如果这没有回答您的问题,请评论您仍然对问题的哪一部分感到困惑。
    猜你喜欢
    • 2014-07-03
    • 2013-08-10
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    相关资源
    最近更新 更多