Node.js Heroku上的socket.io不断给我提供H15空闲连接错误

Node.js Heroku上的socket.io不断给我提供H15空闲连接错误,node.js,express,heroku,socket.io,Node.js,Express,Heroku,Socket.io,我正在为我的应用程序使用socket.io,该应用程序目前正在生产(在heroku上),我不断收到这些错误。虽然看起来一切都正常工作,但我的日志中充斥着错误 Jun 23 15:33:00 fixtrackapi heroku/router: at=error code=H15 desc="Idle connection" method=GET path="/ws/?EIO=3&transport=websocket&sid=ZS_zSjEfTAkmA8GMAAAC" host=

我正在为我的应用程序使用socket.io,该应用程序目前正在生产(在heroku上),我不断收到这些错误。虽然看起来一切都正常工作,但我的日志中充斥着错误

Jun 23 15:33:00 fixtrackapi heroku/router: at=error code=H15 desc="Idle connection" method=GET path="/ws/?EIO=3&transport=websocket&sid=ZS_zSjEfTAkmA8GMAAAC" host=api.myurl.com request_id=18ca3817-009a-419f-8ef3-c598bc866bb4 fwd="84.194.46.28,54.155.253.188" dyno=web.1 connect=0ms service=119082ms status=503 bytes=189 
Jun 23 15:33:01 fixtrackapp heroku/router: at=error code=H15 desc="Idle connection" method=GET path="/ws/?EIO=3&transport=websocket&sid=ZS_zSjEfTAkmA8GMAAAC" host=demo.myurl.com request_id=18ca3817-009a-419f-8ef3-c598bc866bb4 fwd="84.194.46.28" dyno=web.1 connect=0ms service=119741ms status=503 bytes=205 
Jun 23 15:34:10 fixtrackapi heroku/router: at=error code=H15 desc="Idle connection" method=GET path="/ws/?EIO=3&transport=websocket&sid=w_vK_zsJv7BY9j7qAAAD" host=api.myurl.com request_id=d0a07db1-1cd1-4b3c-8229-c0fbc32a39db fwd="84.194.46.28,54.155.253.188" dyno=web.1 connect=0ms service=55231ms status=503 bytes=183 
Jun 23 15:34:11 fixtrackapp heroku/router: at=error code=H15 desc="Idle connection" method=GET path="/ws/?EIO=3&transport=websocket&sid=w_vK_zsJv7BY9j7qAAAD" host=demo.myurl.com request_id=d0a07db1-1cd1-4b3c-8229-c0fbc32a39db fwd="84.194.46.28" dyno=web.1 connect=0ms service=55941ms status=503 bytes=199 
如您所见,有2个heroku应用程序同时报告错误,这是因为“fixtrackapp”正在将socket.io请求代理到我的api服务器(“fixtrackapi”)

客户端代码:

const socket = io('', { path: '/ws' });
这是代理代码:

const proxy = httpProxy.createProxyServer({
  target: targetUrl,
  changeOrigin: true,
  ws: true
});
app.use('/api', (req, res) => {
  proxy.web(req, res, {target: targetUrl + '/v1'});
});

app.use('/ws', (req, res) => {
  proxy.web(req, res, {target: targetUrl + '/ws'});
});
Api服务器代码:

const app = express();
const server = new http.Server(app);
const io = socketio(server);
io.path('/ws');
const runnable = app.listen(port, () => console.log(`API running on port ${port}`));
io.listen(runnable);
我还尝试在客户机上运行我自己的keep alive,使用setinterval,每8秒发送一次“ping”。但我仍然有错误(尽管有时我似乎得到的错误更少)

你知道是什么引起的吗


提前谢谢

你用谷歌搜索过H15和Heroku吗?关于如何处理这个问题,有很多建议。最有希望的两种方法是确保在服务器端ping的时间少于每55秒。此外,还有一些关于验证DNS配置的讨论。谢谢你的评论。是的,我正在使用CNAME记录,是的,我尝试在ping之间用8秒的时间运行keep-alive。不幸的是,我仍然有H15的问题。恐怕这与中间的代理有关,但没有任何建议表明这一点。@RobIndesteege我们看到了同样的情况。你找到根本原因了吗?@FajitaNachos我认为它们只是误报,因为一切都正常运转。我刚刚添加了一个过滤器来隐藏H15日志,从那以后就再也没有在上面花费时间了。这里也是!我们添加了自动ping,它们仍然存在。