有什么办法可以防止 ws 连接甚至打开?
目前我正在使用这个解决方案:
wss.on('connection', (ws, request) => {
console.log('connection opened')
ws.on('close', () => console.log('connection closed'})
});
server.on('upgrade', async (request, socket, head) => {
if (websocketVerificationFailed()) {
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
socket.destroy();
return;
}
wss.handleUpgrade(request, socket, head, ws => wss.emit('connection', ws, request));
});
问题是连接打开了很短的时间,然后关闭。这不是我想要的,因为客户端不应该在没有验证的情况下触发 onopen。
我是否需要在客户端设置一些超时并等待连接状态正确,或者有另一种方法可以在服务器上修复它?
如您所见,我正在使用 ws 库。