MCPcopy Index your code
hub / github.com/socketio/socket.io / _add

Method _add

lib/namespace.ts:315–358  ·  view source on GitHub ↗

* Adds a new client. * * @return {Socket} * @private

(
    client: Client<ListenEvents, EmitEvents, ServerSideEvents>,
    auth: Record<string, unknown>,
    fn: (
      socket: Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
    ) => void
  )

Source from the content-addressed store, hash-verified

313 * @private
314 */
315 async _add(
316 client: Client<ListenEvents, EmitEvents, ServerSideEvents>,
317 auth: Record<string, unknown>,
318 fn: (
319 socket: Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
320 ) => void
321 ) {
322 debug("adding socket to nsp %s", this.name);
323 const socket = await this._createSocket(client, auth);
324
325 if (
326 // @ts-ignore
327 this.server.opts.connectionStateRecovery?.skipMiddlewares &&
328 socket.recovered &&
329 client.conn.readyState === "open"
330 ) {
331 return this._doConnect(socket, fn);
332 }
333
334 this.run(socket, (err) => {
335 process.nextTick(() => {
336 if ("open" !== client.conn.readyState) {
337 debug("next called after client was closed - ignoring socket");
338 socket._cleanup();
339 return;
340 }
341
342 if (err) {
343 debug("middleware error, sending CONNECT_ERROR packet to the client");
344 socket._cleanup();
345 if (client.conn.protocol === 3) {
346 return socket._error(err.data || err.message);
347 } else {
348 return socket._error({
349 message: err.message,
350 data: err.data,
351 });
352 }
353 }
354
355 this._doConnect(socket, fn);
356 });
357 });
358 }
359
360 private async _createSocket(
361 client: Client<ListenEvents, EmitEvents, ServerSideEvents>,

Callers 1

doConnectMethod · 0.80

Calls 5

_createSocketMethod · 0.95
_doConnectMethod · 0.95
runMethod · 0.95
_cleanupMethod · 0.80
_errorMethod · 0.80

Tested by

no test coverage detected