Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

nestjs websocket

作者:视同仁寤戬   发布日期:2025-04-08   浏览:58

// 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);
  }
}

解释说明

  1. 模块配置 (app.module.ts):

    • AppModule 中,我们导入了 EventsGateway 提供者。这将确保 NestJS 知道我们需要启动一个 WebSocket 服务器。
  2. 网关类 (events.gateway.ts):

    • 使用 @WebSocketGateway() 装饰器定义一个 WebSocket 网关。
    • @WebSocketServer() 装饰器用于注入 socket.ioServer 实例。
    • @SubscribeMessage('events') 装饰器用于监听客户端发送的 events 消息。
    • handleEvent 方法接收来自客户端的消息,并通过 server.emit 将消息广播给所有连接的客户端。

这样设置后,NestJS 应用程序就可以通过 WebSocket 进行实时通信了。

上一篇:js string slice

下一篇:js des加密

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js 获取今天年月日

js jsonp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站