更新
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
module.exports = {
|
||||
path:"app/*/io/*.js",
|
||||
path: "app/*/io/*.js",
|
||||
port: 3210,
|
||||
test_port: 3211,
|
||||
}
|
||||
|
||||
@@ -7,11 +7,16 @@
|
||||
*/
|
||||
const config = require("./config")
|
||||
const path = require('path')
|
||||
const uuid = require("uuid");
|
||||
module.exports = async (app) => {
|
||||
const parameter = app.parameter
|
||||
const server = require('http').createServer(app.callback());
|
||||
const io = require('socket.io')(server);
|
||||
const io = require('socket.io')(server, {cors: true});
|
||||
// let leaveRoom = () => {
|
||||
// }
|
||||
let list = await app.load(config.path)
|
||||
app.io = io
|
||||
app.alias["$io"] = app.io
|
||||
//等待所有插件载入完成后
|
||||
app.willReadyList.push(async () => {
|
||||
//默认命名空间
|
||||
@@ -24,17 +29,35 @@ module.exports = async (app) => {
|
||||
}
|
||||
});
|
||||
console.log('连接=>', "id:" + socket.id);
|
||||
|
||||
//监听disconnect事件
|
||||
socket.on('disconnect', (eventName, callback) => {
|
||||
console.log('断开=X', "id:" + socket.id)
|
||||
})
|
||||
// socket.on('disconnect', (eventName, callback) => {
|
||||
// console.log('断开=X', "id:" + socket.id)
|
||||
// leaveRoom(socket, {msg: '', onname: 'leaveRoom', callback})
|
||||
// })
|
||||
for (let el of list) {
|
||||
//空间名称
|
||||
// const namespace = path.basename(path.resolve(el.parse.dir, '..'))
|
||||
//事件名称
|
||||
const onname = el.parse.name
|
||||
socket.on(onname, (msg, callback) => {
|
||||
el.res(app, msg, callback)
|
||||
// if (onname === 'leaveRoom') {
|
||||
// //离开房间处理
|
||||
// leaveRoom = (socket, {msg, onname, callback}) => el.res.fun(socket, {msg, onname, callback})
|
||||
// }
|
||||
socket.on(onname, (msg, callback, anotherSocketId) => {
|
||||
console.log('anotherSocketId', socket.id);
|
||||
const validate = parameter.validate(el.res.params, msg);
|
||||
if (validate) {
|
||||
socket.emit('error', {
|
||||
event: onname,
|
||||
res : app.res.error(validate, "参数验证不通过", 204)
|
||||
})
|
||||
console.error('socket', socket.id, msg, onname, app.res.error(validate, "参数验证不通过", 204));
|
||||
// ctx.body = app.res.error(validate, "参数验证不通过", 204)
|
||||
} else {
|
||||
el.res.fun(socket, {msg, onname, callback})
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
});
|
||||
@@ -45,9 +68,15 @@ module.exports = async (app) => {
|
||||
//覆盖启动方法
|
||||
app.startServer = () => {
|
||||
// 监听端口
|
||||
app.startServer = server.listen(3000, () => {
|
||||
console.log('listening on *:3000');
|
||||
const port = (process.env.NODE_ENV === 'test' && config.test_port) || config.port || 3000
|
||||
const baseURL = "http://127.0.0.1"
|
||||
app.config.port = port
|
||||
app.config.baseURL = baseURL
|
||||
app.server = server.listen(port, () => {
|
||||
console.log(`http 服务: ${baseURL}:${port}`);
|
||||
console.log(`socket 服务: ${baseURL}:${port}`);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user