Javascript 如何检查WebSocket.server连接是否打开或关闭?

Javascript 如何检查WebSocket.server连接是否打开或关闭?,javascript,node.js,websocket,Javascript,Node.js,Websocket,我正在使用node js,我不知道如何检查我的WebSocket.Server连接是否打开或关闭,是否有类似socket.readyState的功能 我这样问是因为我有问题,当我+其他人在同一时刻重新加载192……/xxx时,我得到一个错误错误:听着EADDRINUSE:::3001,我不知道它在哪里爆炸 我还想提到,我确实关闭了连接,但只在一个点上,这里是我的代码示例 router.get('/', function(req, res, next) { wss.on('connection

我正在使用node js,我不知道如何检查我的WebSocket.Server连接是否打开或关闭,是否有类似socket.readyState的功能

我这样问是因为我有问题,当我+其他人在同一时刻重新加载192……/xxx时,我得到一个错误
错误:听着EADDRINUSE:::3001
,我不知道它在哪里爆炸

我还想提到,我确实关闭了连接,但只在一个点上,这里是我的代码示例

router.get('/', function(req, res, next) {
  wss.on('connection', function connection(ws) {
    ws.on('message', function incoming(message) {
      console.log('Client: Im on... /zzz');
    })
  });

  wss.on('error', function error(err) {
    console.log(wss.clients);
    next(err);
  });

  //??
  //wss.clients.clear();

  db.all('SELECT rowid, * FROM ZZZZZZZZ', (err, rows) => {
    //idk if its ok
    if (err) next(err);

    if (rows.length == 0) {
      res.render('xxxxx/index', {
        AAA: 'empty'
      });
    } else {
      wss.close(function(err) {
        if (err) next(err);
        console.log('closing websocket at /zzz');
        server.close();
        setTimeout(function() {
          wss = new WebSocket.Server({
            port: 3001
          });
        }, 100);
      });
      res.render('xxx/index', {
        AAA: rows
      });
    }
  });
});
我的路由器上面有什么

let express = require('express');
let router = express.Router();
let sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('./xx/xx/xx/xxx/xx/xxx.db');
let WebSocket = require('ws');
let wss = new WebSocket.Server({ port: 3001 });
let server = wss._server;

在我看来,websocket服务器依赖于特定的端点。您遇到的错误是试图将多个websocket服务器绑定到同一端口。您只需要一个websocket服务器来处理多个客户端连接。我建议您将它们分开,让websocket服务器与express应用程序一起运行

让端点执行某些操作(如关闭websocket)是很酷的,但如果您正在执行类似操作,我建议对它们进行身份验证

您遇到的错误是100%服务器端,端口3001正在使用中。它正在尝试在端口3001上启动websocket服务器,并且已经有一个正在运行。您可以使用不同的端口,也可以仅使用原始websocket服务器为多个客户端提供服务

要真正回答您提出的问题,我认为正确的方法是为您的websocket服务器实现心跳。这应该在
n
分钟/秒/毫秒之后发送(我可能会选择分钟)。最好使其双向,以便服务器和客户端知道连接何时断开