fix: socketio redis adapter

This commit is contained in:
abdou6666 2025-01-02 10:15:14 +01:00
parent 9770a344aa
commit 4607df67aa

View File

@ -1,11 +1,12 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
*/
import { InternalServerErrorException } from '@nestjs/common';
import { IoAdapter } from '@nestjs/platform-socket.io';
import { createAdapter } from '@socket.io/redis-adapter';
import { createClient } from 'redis';
@ -17,14 +18,19 @@ export class RedisIoAdapter extends IoAdapter {
private adapter: ReturnType<typeof createAdapter>;
async connectToRedis(): Promise<void> {
const pubClient = createClient(
config.cache.type === 'redis' && {
socket: {
host: config.cache.host,
port: config.cache.port,
},
if (config.cache.host !== 'redis') {
throw new InternalServerErrorException(
`Unable to run connect to redis host is ${config.cache.host} instead of 'redis'`,
);
}
// @todo : add zod validation
const redisConfig = {
socket: {
host: config.cache.host,
port: config.cache.port,
},
);
};
const pubClient = createClient(redisConfig);
const subClient = pubClient.duplicate();
pubClient.on('error', (error) => {
throw error;