Javascript 使应用程序和节点之间的连接保持活动状态2分钟

Javascript 使应用程序和节点之间的连接保持活动状态2分钟,javascript,jquery,node.js,ajax,Javascript,Jquery,Node.js,Ajax,我试图对NodeJS服务器进行jqueryajax调用,然后服务器将轮询另一个端点,最长持续2分钟 不幸的是,当服务器完成轮询并准备响应jQuery ajax post时,连接被终止 我如何才能使此路线的连接保持活动2分钟,而不是每条路线。这是我现在的AJAX帖子: $.ajax({ url: $(this).attr("action"), type: 'POST', data: formdata, processData: false, content

我试图对NodeJS服务器进行jqueryajax调用,然后服务器将轮询另一个端点,最长持续2分钟

不幸的是,当服务器完成轮询并准备响应jQuery ajax post时,连接被终止

我如何才能使此路线的连接保持活动2分钟,而不是每条路线。这是我现在的AJAX帖子:

$.ajax({
    url:  $(this).attr("action"),
    type: 'POST',
    data: formdata,
    processData: false,
    contentType: false,
    beforeSend: function(request) {
        request.setRequestHeader("Keep-Alive", 'timeout=121, max=100')
    },
    success: function (res) {        
        if (res.status === 200) {
            Materialize.toast(res.msg, 4000, 'green')
        }
        else {
            Materialize.toast(res.msg, 4000, 'red')
        }
    },
    error: function (xhr, status, error) {
        Materialize.toast(error, 4000, 'red')
    }
})

当我检查请求头时,没有设置“保持活动”,我遗漏了什么?

浏览器控制这一时间,因此您对此无能为力。我认为它们都在1-2分钟的范围内(我认为这是非常公平的),很明显,浏览器不能让套接字保持更长的打开时间,因为这可能会导致性能问题,内存泄漏等。您可以在本地覆盖它们,但这对除了您自己之外的任何人都没有任何好处-因为默认用户将拥有默认的
KeepAliveTimeout

你真正应该考虑的是一个更好的解决方案来实现你想要的。一个长时间运行的任务让套接字保持如此长的打开时间是错误的

我会考虑执行一个初始API调用,触发流程启动,然后向UI返回一个成功响应,说“yes this has starting processing…”。完成后,在API上使用
websockets
向UI激发事件。有很多
npm
软件包支持这一点

您提出的解决方案无法在现实世界中生存,因此,改变您对如何实现这一目标的想法是解决这一问题的最佳方法。这可能不是您希望的答案,但总体上改变这一点将大大改善您的解决方案的所有方面


祝你好运。

浏览器控制这段时间,因此你对此无能为力。我认为它们都在1-2分钟的范围内(我认为这是非常公平的),很明显,浏览器不能让套接字保持更长的打开时间,因为这可能会导致性能问题,内存泄漏等。您可以在本地覆盖它们,但这对除了您自己之外的任何人都没有任何好处-因为默认用户将拥有默认的
KeepAliveTimeout

你真正应该考虑的是一个更好的解决方案来实现你想要的。一个长时间运行的任务让套接字保持如此长的打开时间是错误的

我会考虑执行一个初始API调用,触发流程启动,然后向UI返回一个成功响应,说“yes this has starting processing…”。完成后,在API上使用
websockets
向UI激发事件。有很多
npm
软件包支持这一点

您提出的解决方案无法在现实世界中生存,因此,改变您对如何实现这一目标的想法是解决这一问题的最佳方法。这可能不是您希望的答案,但总体上改变这一点将大大改善您的解决方案的所有方面


祝你好运。

你可以使用或满足你的要求。不要增加KeepAliveTimeout的时间。

您可以使用或满足您的要求。而不是增加
KeepAliveTimeout
时间。

嗨,谢谢,我很感谢你提供的信息!谢谢谢谢,我很感谢你的信息!谢谢