3

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

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

任何想法将不胜感激。

4

1 回答 1

5

确实有一个适当的解决方案。你需要一个Injectable包含 RxJS 的Subject。每当您Controller通过 POST 请求接收到一个值时,它就会将该值委托给注入的服务。然后服务“指示”Subject发出该值。在链的另一端,在您的 WebSocket 内部Gateway @SubscribeMessage,您将一个 RxJS Observable(从 派生而来Subject)返回给连接的客户端。

有关主题异步响应的更多信息

这是实现

于 2021-03-15T15:19:33.207 回答