Node.js 如何判断客户端何时使用NodeJS从Web套接字断开连接?

Node.js 如何判断客户端何时使用NodeJS从Web套接字断开连接?,node.js,websocket,Node.js,Websocket,我有一个节点websocket,我试图检测客户端何时断开连接。我根据文档尝试了以下代码,但仍然无法检测到关闭 const wss = new WebSocket.Server({ server: this.server }); this.wss = wss; this.wss.on('connection', function connection(ws) { Logger.log("

我有一个节点websocket,我试图检测客户端何时断开连接。我根据文档尝试了以下代码,但仍然无法检测到关闭

        const wss = new WebSocket.Server({
            server: this.server
        });
        this.wss = wss;
        this.wss.on('connection', function connection(ws) {
            Logger.log("verbose", `Web socket is now alive`);
            ws.isAlive = true;
            ws.on("pong", function(){
                Logger.log("verbose", `Web socket pong`);
                console.log(`the pong is ${this.isAlive} ${ws.isAlive}`);
                this.isAlive = true;
            });
        });
        setInterval(()=>{
            console.log(`Setting the interval ${wss.clients.length}`);
            wss.clients.forEach(function each(ws) {
                if (ws.isAlive === false){
                    Logger.log("verbose", `The web socket died`);
                    return ws.terminate();
                }
                ws.isAlive = false;
                ws.ping(()=>{});
            });
        }, 30000);
但是,wss.clients在被检测到之前似乎是空的。如何检测实际关闭的连接

更新
还尝试了close事件和onclose函数,但似乎没有一个像我所寻找的那样。

您正在查找
ws.on(“close”,function close(){…})
this.wss.on('connection',function connection(ws){…})的内部。
。根据您的代码:

const wss=new WebSocket.Server({
服务器:这个是.server
});
this.wss=wss;
this.wss.on('connection',function connection(ws){
log(“verbose”,websocket现在处于活动状态“);
ws.isAlive=true;
ws.on(“pong”,function(){
log(“verbose”,websocketpong`);
log(`pong是${this.isAlive}${ws.isAlive}`);
this.isAlive=true;
});
打开(“关闭”,函数(){
//在这里做收尾工作
});
});
设置间隔(()=>{
log(`settingtheinterval${wss.clients.length}`);
forEach(每个函数(ws){
如果(ws.isAlive==false){
Logger.log(“verbose”,web套接字死了);
返回ws.terminate();
}
ws.isAlive=false;
ws.ping(()=>{});
});
}, 30000);

所以在这种情况下这是可行的,但当我传递对象并尝试在另一个上下文中执行时,它似乎给我带来了麻烦。我将尝试给出一个例子,并提出另一个问题。