我试图以某种方式在我的节点/表达式中分离我的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端口不支持多个路径
谢谢