app.controller.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { Controller, Get, OnModuleInit, Param } from '@nestjs/common';
  2. import { AppService } from './app.service';
  3. import { grpcClientOptions } from './scene/grpc-scene.options';
  4. import { ClientGrpc, Client } from '@nestjs/microservices';
  5. import { SceneService } from './scene/scene.service';
  6. import { CacheService } from './cache/cache.service';
  7. @Controller()
  8. export class AppController implements OnModuleInit {
  9. @Client(grpcClientOptions) private readonly client: ClientGrpc;
  10. private sceneGrpcService: SceneGrpcService;
  11. constructor(
  12. private readonly appService: AppService,
  13. private readonly sceneService: SceneService,
  14. private readonly cacheService: CacheService,
  15. ) { }
  16. onModuleInit() {
  17. // console.log('this.client', this.client);
  18. // this.sceneGrpcService =
  19. // this.client.getService<SceneGrpcService>('SceneGrpcService');
  20. // console.log('this.sceneGrpcService', this.sceneGrpcService);
  21. }
  22. @Get('/api/online/:roomId')
  23. async getOnline(@Param('roomId') roomId): Promise<any> {
  24. try {
  25. const roomKey =
  26. process.env.NODE_ENV === 'development'
  27. ? `test-room:${roomId}`
  28. : `room:${roomId}`;
  29. const onlineRoomUsers = await this.cacheService.hGetAll(roomKey);
  30. const userIds = Object.keys(onlineRoomUsers);
  31. console.log('onlineRoomUsers', userIds);
  32. return {
  33. users: userIds || [],
  34. total: userIds.length || 0,
  35. };
  36. } catch (error) {
  37. console.log('error', error);
  38. return {
  39. users: [],
  40. total: 0,
  41. };
  42. }
  43. }
  44. }