51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
import http from 'node:http'
|
|
// import https from 'node:https' // 暂时
|
|
import express from 'express'
|
|
import { Server as SocketIoServer } from 'socket.io'
|
|
|
|
// 类型提示
|
|
import { TheWhiteSilkParams, CallbackMessage } from './Types.js'
|
|
|
|
const app = express()
|
|
const httpApp = http.createServer(app)
|
|
const sio = new SocketIoServer(httpApp, {})
|
|
|
|
// 编译前端代码
|
|
import io from './lib/io.js'
|
|
io.copyDir('./client/', './whitesilk_data/page_builded/')
|
|
await import('./build.js').then(a => a.default('whitesilk_data/page_builded/'))
|
|
app.use('/', express.static('whitesilk_data/page_builded/'))
|
|
|
|
const events = {}
|
|
import { UserApi } from './api/User.js'
|
|
|
|
for (let i of [
|
|
UserApi,
|
|
]) {
|
|
for (let i2 of Object.keys(i)) {
|
|
if (i2 == 'API_NAME') continue
|
|
events[i.API_NAME + '.' + [i2]] = i[i2]
|
|
}
|
|
}
|
|
|
|
sio.on("connection", (socket) => {
|
|
socket.on('the_white_silk',
|
|
/**
|
|
* @param { TheWhiteSilkParams } params
|
|
* @param { Function } callback
|
|
*/
|
|
(params, callback) => {
|
|
if ((params || callback) == null || typeof callback != 'function') return;
|
|
|
|
/** @type { CallbackMessage } */
|
|
let data = events[params.method] ? events[params.method](params.args) : {
|
|
msg: '找不到此方法',
|
|
code: CallbackMessage.Code.NOT_FOUND,
|
|
}
|
|
callback(data)
|
|
}
|
|
)
|
|
})
|
|
|
|
httpApp.listen(80)
|