1

有什么办法可以防止 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 库。

4

1 回答 1

0

在我看来,您应该只允许用户访问,例如当他登录时。或者在一些受保护的路线上。所以暂时没有打开连接。仅在获得授权的情况下。

于 2020-05-11T09:59:13.627 回答