/** * socket.io * 自动绑定io文件夹内js文件 * 参考文档: * 1.https://socket.io/docs/v4/server-api * 2.https://juejin.cn/post/6844903810050031630 */ const config = require("./config") const path = require('path') module.exports = async (app) => { const server = require('http').createServer(app.callback()); const io = require('socket.io')(server); let list = await app.load(config.path) app.io = io //默认命名空间 io.on('connection', socket => { //通知客户端已连接 socket.emit('open', { msg:"ok", data:{ id:socket.id } }); console.log('连接=>',"id:"+socket.id); //监听disconnect事件 socket.on('disconnect', (eventName, callback) => { console.log('断开=X',"id:"+socket.id) }) for (let el of list) { //空间名称 // const namespace = path.basename(path.resolve(el.parse.dir, '..')) //事件名称 const onname = el.parse.name socket.on(onname, el.res) } }); //覆盖启动方法 app.startServer = () => { // 监听端口 app.startServer = server.listen(3000, () => { console.log('listening on *:3000'); }); } }