// app.module.ts
import { Module } from '@nestjs/common';
import { WebSocketGateway, WebSocketServer } from '@nestjs/websockets';
import { Server } from 'socket.io';
@Module({
imports: [],
controllers: [],
providers: [EventsGateway],
})
export class AppModule {}
// events.gateway.ts
import { WebSocketGateway, WebSocketServer, SubscribeMessage, MessageBody } from '@nestjs/websockets';
import { Server } from 'socket.io';
@WebSocketGateway()
export class EventsGateway {
@WebSocketServer() server: Server;
@SubscribeMessage('events')
handleEvent(@MessageBody() data: any): void {
this.server.emit('events', data);
}
}
模块配置 (app.module.ts
):
AppModule
中,我们导入了 EventsGateway
提供者。这将确保 NestJS 知道我们需要启动一个 WebSocket 服务器。网关类 (events.gateway.ts
):
@WebSocketGateway()
装饰器定义一个 WebSocket 网关。@WebSocketServer()
装饰器用于注入 socket.io
的 Server
实例。@SubscribeMessage('events')
装饰器用于监听客户端发送的 events
消息。handleEvent
方法接收来自客户端的消息,并通过 server.emit
将消息广播给所有连接的客户端。这样设置后,NestJS 应用程序就可以通过 WebSocket 进行实时通信了。
上一篇:js string slice
下一篇:js des加密
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站