socketio / socket.io-admin-ui

Admin UI for Socket.IO

Home Page:https://admin.socket.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem with redis-adapter

Natashkinsasha opened this issue · comments

Hi. I faced with error. Try use nestjs, socket.io, redis-adapter, admin-ui.

     "socket.io": "4.4.1"
    "@nestjs/platform-socket.io": "^8.2.6",
    "@nestjs/websockets": "^8.2.6",
    "@socket.io/admin-ui": "^0.2.0",
    "@socket.io/redis-adapter": "^7.1.0",
export class RedisIoAdapter extends IoAdapter {
  constructor(
    private readonly redisClient: RedisClientType,
    private readonly appOrHttpServer: INestApplicationContext,
  ) {
    super(appOrHttpServer);
  }

  public createIOServer(port: number, options?: ServerOptions) {
    const pubClient = this.redisClient.duplicate();
    const subClient = this.redisClient.duplicate();
    const server = super.createIOServer(port, options);
    instrument(server, {
      auth: false,
      store: new RedisStore(this.redisClient.duplicate()),
      serverId: `${os.hostname()}#${process.pid}`,
    });
    server.adapter(createAdapter(pubClient, subClient));
    return server;
  }
}
/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/@node-redis/client/dist/lib/client/index.js:407
        return Promise.reject(new errors_1.ClientClosedError());
                              ^
Error: The client is closed
    at Commander._RedisClient_sendCommand (/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/@node-redis/client/dist/lib/client/index.js:407:31)
    at Commander.commandsExecutor (/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/@node-redis/client/dist/lib/client/index.js:166:154)
    at Commander.BaseClass.<computed> [as publish] (/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/@node-redis/client/dist/lib/commander.js:8:29)
    at RedisAdapter.broadcast (/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/@socket.io/redis-adapter/dist/index.js:406:28)
    at BroadcastOperator.emit (/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/socket.io/dist/broadcast-operator.js:109:22)
    at Namespace.emit (/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/socket.io/dist/namespace.js:170:73)
    at Timeout.emitStats [as _onTimeout] (/Users/aliaksandrnatashkin/WebstormProjects/cellnft-backend/node_modules/@socket.io/admin-ui/dist/index.js:75:24)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)

if comment instrument everything work, if comment adapter work too

Hi! redis@4 now requires that users manually call redisClient.connect().

I've updated the guide here and added an example here.

Please reopen if needed!