Nestjs如何同时使用http请求和Websocket

Nestjs how to use http request and Websocket at the same time

我在 Nestjs 中有一个控制器可以处理 HTTP 请求。有一个 IoT 设备与服务器通信,并通过 post 请求将最新更改发送到服务器。同时,有一个移动应用程序应该使用 Websockets 实时接收更新。

我知道在 Nestjs 中 HTTP 请求和 Websockets 是不同的概念,但是有什么方法可以在我收到 HTTP 请求时发出事件吗?

任何想法将不胜感激。

确实有一个合适的解决方案。您需要一个包含 RxJS SubjectInjectable。每当您的 Controller 通过 POST 请求接收到一个值时,它就会将该值委托给注入的服务。该服务然后“指示”Subject 发出该值。 在链的另一端,在您的 WebSocket Gateway @SubscribeMessage 中,您 return 一个 RxJS Observable - 它派生自 Subject - 连接到客户。

更多关于Subject and Asynchronous responses

这里是 implementation.