当前位置: 首页 > 面试题库 >

H15在Heroku SSE请求上

东郭阳德
2023-03-14
问题内容

我在Heroku上有一个Node.js应用程序。我最近切换了一个较长的查询以使用SSE(EventSource)。尽管它在我的机器上运行良好且速度很快,但我不断收到Error H15 (Idle connection)GET请求。H15说明说我每次交易都超过了55秒。但是我的整个查询时间不会超过4-5秒。

此外,在阅读了说明之后,我将在查询开始后立即返回我的第一个字节(只是一个数字),然后再开始进行繁重的工作-仍然不起作用。

我的问题是:

  1. 为了使事情继续进行,我需要做什么?HTTP标头参数?客户端JS端有东西吗?如何避免H15?
  2. 我是否在尝试做Heroku不支持的事情?我不这么认为,因为我在Heroku上有另一个成功使用EventSource的应用程序(express-eventsource.herokuapp.com,位于github上的源代码:https : //github.com/TravelingTechGuy/express-eventsource)

一如既往,感谢您的宝贵时间。


问题答案:

在尝试了一切,更改并重新编写我的代码,对网络进行概要分析之后,我的朋友(一无所知)最终提出了一个使我步入正轨的想法:

看来这是一个域问题-根本不是代码问题。
我设置了一个ANAME映射,事实证明,由于Heroku使用5个不同的IP,因此仅映射到其中一个IP就可以打乱SSE调用。基本上,mydomain.com显示的IP与mydomain.herokuapp.com不同-
这意味着服务器尝试将响应返回到与发起呼叫的IP不同的IP,因此超时。

我放弃了ANAME,转而使用CNAME(基本上是放弃裸身的mydomain.com,转而使用www.mydomain.com),现在它似乎正在工作。

结论:

  1. 并非所有问题都是代码问题-如果它在一个环境中运行良好,而在另一种环境中运行不佳,则是配置问题
  2. 如果您为某件事苦苦挣扎了太久,这会带来新的眼光。即使没有主题方面的专业知识,您也会获得可尝试新方法的好主意
  3. 1and1 DNS控件糟透了b @ lls。搬出那里


 类似资料:
  • 问题内容: 我有一个函数,在输入更改时运行ajax调用。 但是,有可能在之前的ajax调用完成之前再次触发该函数。 我的问题是,在开始新的ajax调用之前,我将如何中止它?不使用全局变量。(请参阅此处的类似问题的答案) 我当前代码的jsfiddle: Javascript: HTML: 问题答案:

  • 我用的是Spring靴。我已经为SOAP web服务编写了一个ClientInterceptor,我想记录我要向其发送请求的URL,并且我想在HandlerResponse方法中这样做。然而,我找不到一个方法来做到这一点。有可能吗?任何帮助都会很好。 创建restTemplate的方式

  • 我尽力描述我的处境。我的wicket站点包含list wicket组件,其中每个列表元素都有另一个列表。最低级别列表中的每个元素都有下载某个文件的ajax wicket链接。这一切都很好。我习惯了这种懒散的行为。此行为的方法startDownload在link onClick方法中调用。

  • 一个应用的请求是用 yii\web\Request 对象来表示的,该对象提供了诸如 请求参数(译者注:通常是GET参数或者POST参数)、HTTP头、cookies等信息。 默认情况下,对于一个给定的请求,你可以通过 request application component 应用组件(yii\web\Request 类的实例) 获得访问相应的请求对象。在本章节,我们将介绍怎样在你的应用中使用这个

  • Wiki ▸ [[API--中文手册]] ▸ [[核心函数]] ▸ 请求 如果你不访问数据那么你就不能可视化它。幸运的是有很多的方法可以把数据放到浏览器中。对于小数据集,你可以硬编码到你的脚本里,或者使用数据属性嵌入到DOM中。对于大数据集,你可以引用外部脚本并定义你的数据为一个全局变量。(JSONP就是一个常见的例子)。最通用的方式是使用XMLHttpRequest, 或说XHR加载数据到浏览器

  • 请求对象(Request) 是完全基于 PSR-7 标准实现的,由 hyperf/http-message 组件提供实现支持。 注意 PSR-7 标准为 请求(Request) 进行了 immutable 机制 的设计,所有以 with 开头的方法的返回值都是一个新对象,不会修改原对象的值 安装 该组件完全独立,适用于任何一个框架项目。 composer require hyperf/http-m