I have an events.gateway.ts which is controlling all the client and server events, but when I do
this.server.emit('client.events', data) from @EventPattern('gw-event:playback.state')I have the emit null. Please see below the code:
import { Logger, Inject, Controller } from '@nestjs/common';
import { SubscribeMessage, 
  WebSocketGateway, 
  MessageBody, 
  WebSocketServer,
  OnGatewayInit,
  OnGatewayConnection,
  OnGatewayDisconnect} from '@nestjs/websockets';
import { Socket, Server  } from 'socket.io';
import { ClientProxy, EventPattern} from '@nestjs/microservices';
@Controller('gateway')
@WebSocketGateway()
export class EventsGateway implements OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect{
  @WebSocketServer() server: Server;
  private logger: Logger = new Logger('EventsGateway');
  constructor(@Inject('EVENTS_SERVICE') private readonly client: ClientProxy) {
  }
  afterInit(server: Server) {
    this.server = server;
    this.logger.log('Init', EventsGateway.name);
  }// OnGatewayInit
  handleDisconnect(client: Socket) {
    this.logger.log(`Client disconnected: ${client.id}`, EventsGateway.name);
  }// OnGatewayDisconnect
  handleConnection(client: Socket, ...args: any[]) {
    this.logger.log(`Client connected: ${client.id}`, EventsGateway.name);
    this.server.emit('client.events', 'Welcome client:' + client.id);
  }// OnGatewayConnection
  @SubscribeMessage('client.events')
  handleEvent(@MessageBody() data: string): any {
    return { event: 'client.events', 'data': data + '__from Server'};
  }
  @EventPattern('gw-event:playback.state') 
  async handlePlaybackState(data: Record<string, unknown>) {
    this.server.emit('client.events', data); //<= Error emit is null
  }
}
Any suggestion? Thanks.