Nodejs在完成数据处理后对API请求的响应

问题描述 投票:0回答:1

在我当前的项目中,我的nodeJs / express将通过路由接收HTTP请求。

一旦收到,节点将使用NightmareJS进行webscrapping,并随后执行进一步处理数据的python脚本。

最后,它将把这些数据更新到MongoDB中。

一切大约需要5分钟。

我试图实现的目的是让前端以某种方式收到请求已通过的确认。但在完成上述过程并更新数据库后,还会收到更新。

我已经研究过使用Long polling或socket.io。但是,我不知道应该使用哪个或如何使用。还是应该改用RabbitMQ?在我的前端不断查询此队列的同时,将已完成的响应放入队列。

node.js reactjs socket.io rabbitmq
1个回答
0
投票
  1. 长轮询或socket.io相似,如果不支持WS,socket.io具有长轮询回退

  2. rabbitMQ完全不同,您不能在浏览器中使用rabbitMQ协议,因此您需要一个客户端应用程序,而不是一个Web

  3. socket.io非常好,并且表现不错,还有其他选择,SSE(服务器发送事件),firebase。您需要先选择它们才能感觉到它们,如果您遵循他们的官方指南,它们并不难[]]

  4. 4。我的一些开源项目可能会有所帮助

https://github.com/postor/sse-notify-suite

https://github.com/postor/node-realtime-db

  1. 每种解决方案的好处

    • ajax +服务器缓存:简单
    • 长拉:低延迟
    • SSE:低延迟,基于事件
    • socket.io:低延迟,基于事件,高吞吐量,双向,长拉回落
© www.soinside.com 2019 - 2024. All rights reserved.