【问题标题】:nestjs Gateways emit an event to all connected socketsnestjs 网关向所有连接的套接字发出事件
【发布时间】:2020-12-25 12:43:44
【问题描述】:

如何向所有连接的套接字发出事件?

    export class EventsGateway {

      @SubscribeMessage('message')

       async onEvent(client, data) {
        // The following is the use of `socket.io` to issue events to all connected sockets.
        // io.emit('message', data);
      }
    }

如何在 Nestjs 中执行此操作?

【问题讨论】:

  • 这是一个很好的问题.

标签: nestjs


【解决方案1】:

NestJS 允许您使用装饰器创建消息侦听器。在此方法中,您可以通过返回 WsResponse 对象来响应客户端。

不过,NestJS 还允许您使用 WebSocketServer 装饰器获取 WebSocket 实例。

要向所有连接的客户端发送事件,您需要使用 WebSocketServer 装饰器并使用本机 WebSocket 实例来发出消息,如下所示:

import WebSocketServer from '@nestjs/websockets'

export class EventsGateway {
  @WebSocketServer() server;

  @SubscribeMessage('message')
  onEvent(client: any, payload: any): Observable<WsResponse<any>> | any {
    this.server.emit('message', payload);
  }
}

【讨论】:

  • 虽然这可能会回答作者的问题,但它缺少一些解释性文字和文档链接。如果没有围绕它的一些短语,原始代码 sn-ps 并不是很有帮助。您可能还会发现 how to write a good answer 非常有帮助。请编辑您的答案。
猜你喜欢
  • 2021-07-26
  • 2020-07-06
  • 2017-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 2017-07-01
  • 1970-01-01
相关资源
最近更新 更多