| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 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();// routerAppRoutes.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}`);});
 |