gemercheung 2 лет назад
Родитель
Сommit
d116d3786a
2 измененных файлов с 17 добавлено и 8 удалено
  1. 1 1
      src/room/room.service.ts
  2. 16 7
      src/room/users/users.service.ts

+ 1 - 1
src/room/room.service.ts

@@ -118,7 +118,7 @@ export class RoomService {
           roomConfig.masterId = UserId;
           this.logger.log(JSON.stringify(userInfo), 'room-config');
           userInfo.roomConfig &&
-            (await this.userService.setRoomConfig(RoomId, roomConfig));
+            (await this.userService.setRoomConfig(RoomId, roomConfig, socket));
         } else {
           blockJoin = true;
           socket.emit('manager-error', {

+ 16 - 7
src/room/users/users.service.ts

@@ -10,7 +10,7 @@ export class UsersService {
     @InjectRedis() private readonly redis: Redis,
     @Inject(forwardRef(() => RoomService))
     private roomService: RoomService,
-  ) { }
+  ) {}
 
   async isUserInRooms(RoomId: string, UserId: string): Promise<boolean> {
     const res = await this.redis.hexists(
@@ -112,6 +112,7 @@ export class UsersService {
   async setRoomConfig(
     RoomId: string,
     RoomConfig: RoomConfigType,
+    socket?: Socket,
   ): Promise<void> {
     const isExist = await this.redis.hget(`kankan:socket:roomConfig`, RoomId);
     // console.log('setRoomConfig', isExist);
@@ -125,12 +126,20 @@ export class UsersService {
         `'正常设置房间-ttl: ${RoomConfig.ttl}`,
         'room-ttl',
       );
-      await this.redis.set(
-        `kankan:socket:tempRoom:${RoomId}`,
-        '',
-        'EX',
-        RoomConfig.ttl,
-      );
+      if (RoomConfig.ttl > 0) {
+        await this.redis.set(
+          `kankan:socket:tempRoom:${RoomId}`,
+          '',
+          'EX',
+          RoomConfig.ttl,
+        );
+      } else {
+        socket &&
+          socket.emit('manager-error', {
+            type: 'invalid-room-params',
+            code: 403,
+          });
+      }
     }
 
     if (isExist) {