Транспорт TCP в Nest
Веб сервер уже слушает свой порт, а второй процесс с внутренней логикой пока не к чему подключить. Без собственного слушателя канала сообщения некуда отправить, хотя модуль с классами уже собран.
Транспорт TCP в Nest задают
при создании приложения через
NestFactory.createMicroservice:
это не HTTP сервер, а отдельный
процесс с пакетом
@nestjs/microservices.
Порт канала выбирают другим,
чем у страниц, чтобы оба процесса
на NodeJS не мешали друг другу.
Покажем на примере постов:
npm install @nestjs/microservices
Точка входа микросервиса поднимает слушатель на локальном TCP порту:
import { NestFactory } from '@nestjs/core';
import { MicroserviceOptions, Transport } from '@nestjs/microservices';
import { AppModule } from './app.module.js';
async function bootstrap() {
const app = await NestFactory.createMicroservice<MicroserviceOptions>(
AppModule,
{
transport: Transport.TCP,
options: {
host: '127.0.0.1',
port: 3001,
},
},
);
await app.listen();
}
bootstrap();
Корневой модуль пока без HTTP контроллеров, только заготовка под обработчики сообщений:
import { Module } from '@nestjs/common';
@Module({})
export class AppModule {}
Установите пакет микросервисов и поднимите отдельный TCP процесс работников с пустым корневым модулем на локальном канале.