在WebSocket和节点/表达式中创建路由

时间:2019-08-27 15:47:42

标签: node.js express websocket routing ws

我试图以某种方式在我的节点/表达式中分离我的WS代码。我想在我的WS代码中包含一些路由,例如表达的API路由。我正在使用ws module

我想我可以直接使用express-ws之类的东西,但是有没有其他多余的npm模块可以做到这一点的方法吗?我不想部署另一个模块,因为更少的模块意味着更小的项目和更易于维护的项目。另外,如果我在没有模块的情况下执行此操作,则将更好地了解WS的工作方式。

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

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路由?我也许可以使用ws模块的path吗?

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

并将flip的代码移动到另一个文件?我不确定如何执行此操作,并且根据我所做的一些测试,相同的WS端口不支持多个路径

谢谢

0 个答案:

没有答案