(nsp, connectionMiddlewares, packetMiddlewares)
| 77 | }; |
| 78 | |
| 79 | function initNsp(nsp, connectionMiddlewares, packetMiddlewares) { |
| 80 | nsp.on('connection', socket => { |
| 81 | socket.use((packet, next) => { |
| 82 | packetMiddlewareInit(app, socket, packet, next, packetMiddlewares, nsp); |
| 83 | }); |
| 84 | |
| 85 | if (nsp[RouterConfigSymbol]) { |
| 86 | for (const [ event, handler ] of nsp[RouterConfigSymbol].entries()) { |
| 87 | if (errorEvent[event]) { |
| 88 | socket.on(event, (...args) => { |
| 89 | debug('[egg-socket.io] socket closed:', args); |
| 90 | const request = socket.request; |
| 91 | request.socket = socket; |
| 92 | const ctx = app.createContext(request, new http.ServerResponse(request)); |
| 93 | ctx.args = args; |
| 94 | handler.call(ctx) |
| 95 | .catch(e => { |
| 96 | e.message = '[egg-socket.io] controller execute error: ' + e.message; |
| 97 | app.coreLogger.error(e); |
| 98 | }); |
| 99 | }); |
| 100 | } else { |
| 101 | socket.on(event, (...args) => { |
| 102 | const ctx = args.splice(-1)[0]; |
| 103 | ctx.args = ctx.req.args = args; |
| 104 | handler.call(ctx) |
| 105 | .then(() => ctx[CtxEventSymbol].emit('finshed')) |
| 106 | .catch(e => { |
| 107 | if (e instanceof Error) { |
| 108 | e.message = '[egg-socket.io] controller execute error: ' + e.message; |
| 109 | } else /* istanbul ignore next */ { |
| 110 | debug(e); |
| 111 | } |
| 112 | ctx[CtxEventSymbol].emit('finshed', e); |
| 113 | }); |
| 114 | }); |
| 115 | } |
| 116 | } |
| 117 | } |
| 118 | }); |
| 119 | |
| 120 | nsp.use((socket, next) => { |
| 121 | connectionMiddlewareInit(app, socket, next, connectionMiddlewares); |
| 122 | }); |
| 123 | } |
| 124 | |
| 125 | if (config.redis) { |
| 126 | const adapter = redis(config.redis); |
no outgoing calls
no test coverage detected
searching dependent graphs…