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