关于Heroku SSE请求的H15

Tra*_*Guy 7 heroku node.js server-sent-events

我在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)

一如既往,谢谢你的时间.

Tra*_*Guy 12

在尝试了所有内容,更改并重新编写代码,分析网络等之后,最后我的朋友(没有任何Node知识)提出了一个让我走上正轨的想法:

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

我放弃了ANAME,转而支持CNAME(基本上,放弃裸体mydomain.com,转而支持www.mydomain.com),现在它似乎正在发挥作用.

结论:

  1. 并非一切都是代码问题 - 如果它在一个环境中运行良好而在另一个环境中运行良好,那么这是一个配置问题
  2. 如果你长时间挣扎,有助于带来一双新的眼睛.即使没有主题专业知识,您也可以获得很好的想法,可以尝试新的方法
  3. 1和1 DNS控制糟透了b @ lls.离开那里