MCPcopy Create free account
hub / github.com/eggjs/egg-socket.io / initNsp

Function initNsp

lib/io.js:79–123  ·  view source on GitHub ↗
(nsp, connectionMiddlewares, packetMiddlewares)

Source from the content-addressed store, hash-verified

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);

Callers 1

io.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…