43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
/**
|
|
* 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', "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');
|
|
});
|
|
}
|
|
|
|
}
|