0

我试图以某种方式在我的节点/快递中分离我的 WS 代码。我想在我的 WS 代码中有一些路由,比如 express 的 API 路由。我正在使用ws 模块

我想我可以使用像express-ws这样开箱即用的东西,但是有没有办法在不使用任何额外的 npm 模块的情况下做到这一点?我不想部署另一个模块,因为更少的模块意味着更小且更易于维护的项目。另外,如果我在没有模块的情况下这样做,我会更好地理解 WS 是如何工作的。

我想我可以将 WS 的某些部分放在一个单独的 js 文件中,将其导出,然后将其包含在我的app.js. 但是我是否还需要在该文件中导入 WS,因为我需要.on('something'事件?

broadcast.js file
 //include 
const  broadcast = (wss) =>{
  var broadcast = function() { 
      var jsonmsg = JSON.stringify({
      message: 'hello'
  });

  // wss.clients is an array of all connected clients
  wss.clients.forEach(function each(client) {
      client.send(jsonmsg);
      console.log('Sent: ' + jsonmsg);
    });
  }
} 

exports.broadcast = broadcast;


and then use it like
const bc = require('./broadcast.js');
bc.broadcast(wss);

通过分离 WS 层,我还可以使用 WS 路由,为不同的任务设置不同的端点。如何创建 WS 路由?我也许可以使用pathws 模块?

var wss = new wsserver({ port: 5001 , path: "/flip"})

并将代码移动flip到另一个文件?我不知道该怎么做,根据我做的一些测试,同一个 WS 端口不支持多路径

谢谢

4

0 回答 0