import { ConfigModule } from '@nestjs/config'; import { NacosService, NacosModule } from 'nest-nacos'; import { getEnvPath } from './common/helper/env.helper'; const envFilePath: string = getEnvPath(`${__dirname}/common/envs`); const config = ConfigModule.forRoot({ isGlobal: true, envFilePath: envFilePath, }); const nacosMo = NacosModule.forRoot({ server: '120.24.144.164:8848', accessKey: 'testsocket', secretKey: 'testsocket', namespace: '4dkankan-v4-test', config: { group: 'DEFAULT_GROUP', dataId: '4dkakan-daikan.yaml', }, }); import { Module, OnModuleInit } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { RedisModule, RedisService } from '@liaoliaots/nestjs-redis'; import { ThrottlerModule } from '@nestjs/throttler'; import { ThrottlerStorageRedisService } from 'nestjs-throttler-storage-redis'; import { RoomModule } from './room/room.module'; // import { SocketModule } from './socket/socket.module'; import { RoomManagerModule } from './room-manager/room-manager.module'; const url = `redis://:${process.env.REDIS_PASSWORD}@${process.env.REDIS_HOST}:${process.env.REDIS_PORT}/${process.env.REDIS_DB}`; const redisMo = RedisModule.forRoot({ config: [ { url: url, }, { namespace: 'sub', url: url, }, ], }); const storeThor = ThrottlerModule.forRootAsync({ useFactory(redisService: RedisService) { const redis = redisService.getClient(); return { ttl: 60, limit: 600, storage: new ThrottlerStorageRedisService(redis), }; }, inject: [RedisService], }); @Module({ imports: [config, redisMo, storeThor, RoomModule, RoomManagerModule, nacosMo], controllers: [AppController], providers: [AppService], exports: [], }) export class AppModule implements OnModuleInit { constructor(private readonly nacos: NacosService) {} async onModuleInit() { await this.nacos.register('4dkakan-daikan-socket'); } }