Использование нескольких адаптеров сокетов с NestJS

Стандарт говорит (23.3.1.2/1), что оператор [] возвращает (*((insert(make_pair(x, T()))).first)).second. Вот в чем причина. Он возвращает ссылку T&. Невозможно вернуть неверную ссылку. И он возвращает ссылку, потому что это очень удобно, я думаю, не так ли?

0
задан user3382203 18 January 2019 в 13:49
поделиться

1 ответ

Вам не нужно разбивать приложение.

Вы можете определить свой модуль следующим образом:

@Module({
  providers: [
    MyGateway,
    MyService,
  ],
})
export class MyModule {}

, где gateway отвечает за канал веб-сокетов

import { SubscribeMessage, WebSocketGateway } from '@nestjs/websockets'
import { Socket } from 'socket.io'
...
@WebSocketGateway()
export class MyGateway {
  constructor(private readonly myService: MyService) {}

  @SubscribeMessage('MY_MESSAGE')
  public async sendMessage(socket: Socket, data: IData): Promise<IData> {
    socket.emit(...)
  }
}

, а service отвечает за канал TCP

import { Client, ClientProxy, Transport } from '@nestjs/microservices'
...
@Injectable()
export class MyService {
  @Client({
    options: { host: 'MY_HOST', port: MY_PORT },
    transport: Transport.TCP,
  })
  private client: ClientProxy

  public async myFunction(): Promise<IData> {
    return this.client
      .send<IData>({ cmd: 'MY_MESSAGE' })
      .toPromise()
      .catch(error => {
        throw new HttpException(error, error.status)
      })
  }
}
0
ответ дан Sébastien Dan 18 January 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: