Nestjs如何同时使用http请求和Websocket
Posted
技术标签:
【中文标题】Nestjs如何同时使用http请求和Websocket【英文标题】:Nestjs how to use http request and Websocket at the same time 【发布时间】:2021-06-12 16:51:23 【问题描述】:我在 Nestjs 中有一个控制器来处理 HTTP 请求。有一个物联网设备与服务器通信,并通过发布请求将最新更改发送到服务器。同时,有一个移动应用程序应该使用 Websockets 实时接收更新。
我知道在 Nestjs 中 HTTP 请求和 Websockets 是不同的概念,但是有什么方法可以在我收到 HTTP 请求时发出事件?
任何想法都将受到高度赞赏。
【问题讨论】:
【参考方案1】:确实有一个适当的解决方案。你需要一个包含 RxJS Subject
的 Injectable
。每当您的 Controller
通过 POST 请求接收到一个值时,它就会将该值委托给注入的服务。然后服务“指示”Subject
发出该值。
在链的另一端,在您的 WebSocket Gateway
@SubscribeMessage
中,您返回一个 RxJS Observable
- 它派生自 Subject
- 给连接的客户端。
更多关于Subject和Asynchronous responses
这里是implementation。
【讨论】:
以上是关于Nestjs如何同时使用http请求和Websocket的主要内容,如果未能解决你的问题,请参考以下文章
如何在 NestJS 控制器处理程序的请求中获取“已验证的正文”和“已验证的用户”?