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 Subject
的 Injectable
。每当您的 Controller
通过 POST 请求接收到一个值时,它就会将该值委托给注入的服务。该服务然后“指示”Subject
发出该值。
在链的另一端,在您的 WebSocket Gateway
@SubscribeMessage
中,您 return 一个 RxJS Observable
- 它派生自 Subject
- 连接到客户。
更多关于Subject and Asynchronous responses
这里是 implementation.
我在 Nestjs 中有一个控制器可以处理 HTTP 请求。有一个 IoT 设备与服务器通信,并通过 post 请求将最新更改发送到服务器。同时,有一个移动应用程序应该使用 Websockets 实时接收更新。
我知道在 Nestjs 中 HTTP 请求和 Websockets 是不同的概念,但是有什么方法可以在我收到 HTTP 请求时发出事件吗?
任何想法将不胜感激。
确实有一个合适的解决方案。您需要一个包含 RxJS Subject
的 Injectable
。每当您的 Controller
通过 POST 请求接收到一个值时,它就会将该值委托给注入的服务。该服务然后“指示”Subject
发出该值。
在链的另一端,在您的 WebSocket Gateway
@SubscribeMessage
中,您 return 一个 RxJS Observable
- 它派生自 Subject
- 连接到客户。
更多关于Subject and Asynchronous responses
这里是 implementation.