我试图以某种方式在我的节点/快递中分离我的 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 路由?我也许可以使用path
ws 模块?
var wss = new wsserver({ port: 5001 , path: "/flip"})
并将代码移动flip
到另一个文件?我不知道该怎么做,根据我做的一些测试,同一个 WS 端口不支持多路径
谢谢