Problem with redis-adapter
Natashkinsasha opened this issue · comments
Natashkinsasha commented
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
Damien Arrachequesne commented