gpt4 book ai didi

angular - HTTP 心跳以避免长时间运行的 http 调用的连接断开

转载 作者:行者123 更新时间:2023-12-05 07:28:20 27 4
gpt4 key购买 nike

我在 Heroku PaaS 上部署了一个应用。

他们有这样的超时策略(https://devcenter.heroku.com/articles/request-timeout):

30 秒,每次在连接中发送或接收一个字节时延长 55 秒。

我有可能需要一段时间的 http 端点(上传文件,需要一些时间来摄取它,然后返回 200 ok)。如果处理时间超过 30 秒,Heroku 路由器将断开连接,整个过程将中止。

有普通的 HTTP/JSON API 端点。客户端是 Angular 6+,服务器是 Spring Boot 2+(Spring MVC,没有反应性的东西)。

我知道我可以使流程异步,无需向我指出那个方向。

问题是:有没有办法在处理数据时从浏览器或服务器端继续在连接中发送内容?

某种 keepalive 噪音,例如可以在 SSH 连接中完成的操作。

我可以在 Angular 应用程序中添加一些作为拦截器的东西是完美的。

最佳答案

在我们的应用程序中,我们可以向 api 发送普通请求,以便登录保持有效。也许您可以为您的应用做类似的事情?

return this.http
.get('login_url')
.pipe(
map(() => {
console.log('Heartbeat OK.');
localStorage.setItem('isAuthenticated', 'true');
return '1';
}),
timeout(this.appConfigService.getConfig().heartbeatTimeout),
catchError(() => {
console.log('Heartbeat Error');
localStorage.setItem('isAuthenticated', 'false');
return '0';
}),
retry(),
delay(this.appConfigService.getConfig().heartbeatDelay),
repeat()
);

关于angular - HTTP 心跳以避免长时间运行的 http 调用的连接断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53425517/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com