import Koa from 'koa' import path from 'path' import Router from 'koa-router' import body from 'koa-body' import cors from 'koa2-cors' import koaStatic from 'koa-static' import websockify from 'koa-websocket' import route from 'koa-route' import AppRoutes from './routes' const PORT = 3300 const app = websockify(new Koa()) app.ws.use(function (ctx, next) { ctx.websocket.send('connection succeeded!') return next(ctx) }) app.ws.use( route.all('/test', function (ctx) { // ctx.websocket.send('Hello World'); ctx.websocket.on('message', function (message) { // do something with the message from client if (message !== 'ping') { const data = JSON.stringify({ id: Math.ceil(Math.random() * 1000), time: new Date().getTime(), res: `${message}` }) ctx.websocket.send(data) } console.log(message) }) }) ) const router = new Router() // router AppRoutes.forEach((route) => router[route.method](route.path, route.action)) app.use(cors()) app.use( body({ encoding: 'gzip', multipart: true, formidable: { // uploadDir: path.join(__dirname, '/upload/'), // 设置文件上传目录 keepExtensions: true, maxFieldsSize: 20 * 1024 * 1024 } }) ) app.use(router.routes()) app.use(router.allowedMethods()) app.use(koaStatic(path.join(__dirname))) app.listen(PORT, () => { console.log(`Application started successfully: http://localhost:${PORT}`) })