首页 > 解决方案 > 如何处理错误:等待 Node 和 React 时套接字挂起

问题描述

在此处输入图像描述我一直在研究接受获取请求的 NodeJS 快速路由,计算和分析大约 15000 多个数据,所以当我点击获取 URL 时,从我的反应应用程序(Axios)中,处理和分析需要超过 4 到 5 分钟并且套接字挂断了大约 2 分钟我应该怎么做才能让我的反应应用程序等待更长时间或以任何其他方式获得响应。也许 HTTP 202 有它的方式,但我不知道该怎么做,有帮助吗?

标签: javascriptnode.jsreactjssocketshttp-status-codes

解决方案


对于此类用例,明智的选择是使用websocketsocket-io 。

但您也可以:

使用快速超时。保持客户端和服务器之间的连接:首先,安装:

npm install connect-timeout

之后更改您的服务器入口点(app.js)文件。

var express = require('express')
var timeout = require('connect-timeout')

// example of using this top-level; note the use of haltOnTimedout
// after every middleware; it will stop the request flow on a timeout
var app = express()
app.use(timeout('400s'))

app.use(haltOnTimedout)


// Add your routes here, etc.

function haltOnTimedout (req, res, next) {
  if (!req.timedout) next()
}

app.listen(3000)

更多详情:快递官方

或者如果您不想安装任何第三方模块:

app.use(function(req, res, next){
   res.setTimeout(120000, function(){
      console.log('Request has timed out.');
         res.send(408);
      });

      next();
 });

推荐阅读