UNPKG

1.21 kBJavaScriptView Raw
1const path = require('path');
2const fs = require('fs');
3
4const logger = getLogger('core.websocket');
5
6module.exports = function (server, auth) {
7 const io = require('socket.io').listen(
8 server,
9 {origins: '*:*', transports: ['websocket', 'polling']},
10 );
11 logger.info(`websocket server start success, running at ws://127.0.0.1:${share.config.port}`);
12
13 io.on('connection', (socket) => {
14 logger.info('a user connected', socket.id);
15 });
16
17 // load config's middlewares
18 share.config.websocketMiddleware.forEach((m) => {
19 let who = 'app';
20 let mFile = `${share.APP_PATH}app${path.sep}middleware${path.sep}${m}.js`;
21 if (!fs.existsSync(mFile)) {
22 who = 'framework';
23 mFile = `${share.FRAMEWORK_PATH}lib${path.sep}middleware${path.sep}${m}.js`;
24 }
25 io.use(require(mFile)(io));
26 logger.info(`require ${who} middleware: ${m}`);
27 return m;
28 });
29
30 io.on('connect', (socket) => {
31 if (typeof auth === 'function') {
32 console.log('1');
33 }
34
35 socket.on('disconnect', () => {
36 logger.info(`client ${socket.id} disconnected`);
37 });
38 logger.info(`client ${socket.id} connected`);
39 });
40
41 global.getWebsocket = function () {
42 return io;
43 };
44};