第07章 高度な機能
NestJS は REST API だけでなく、マイクロサービス / WebSocket / バックグラウンド処理 など多様なアーキテクチャをサポートします。
7.1 マイクロサービス(Microservices)
NestJS は gRPC, Kafka, Redis, RabbitMQ, NATS など多様な通信方式をサポート。
インストール例(Redis)
npm install --save @nestjs/microservices redis
サーバー作成
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { MicroserviceOptions, Transport } from '@nestjs/microservices';
async function bootstrap() {
const app = await NestFactory.createMicroservice<MicroserviceOptions>(AppModule, {
transport: Transport.REDIS,
options: { url: 'redis://localhost:6379' },
});
await app.listen();
}
bootstrap();
メッセージハンドラ
import { Controller } from '@nestjs/common';
import { MessagePattern } from '@nestjs/microservices';
@Controller()
export class AppController {
@MessagePattern({ cmd: 'sum' })
sum(data: number[]): number {
return (data[0] + data[1]);
}
}
➡️ クライアントが { cmd: 'sum' } でメッセージを送ると計算結果を返す。
7.2 WebSockets
リアルタイム通信をサポート。デフォルトで socket.io を利用可能。