Heroku上的Node.js Web Socket H15空闲连接超时

我们在Heroku上运行Node.js和Express应用程序,使用ws库实现实时web套接字。 下面是我们看到的众多H15超时的屏幕截图。

在这里输入图像描述

我读过Heroku在55秒后终止任何空闲连接,但是当连接打开时,我们的套接字每5秒钟来回发送一次乒乓。 下面是一段服务器代码:

var _this = this; this.server.on('connection', function(ws){ // check for a ping, respond with pong ws.on('message', function(data){ data = data.toString('utf8'); if (data === PING) { ws.send(PONG); } }); ws.on('close', function(err){ TL.logger.info('Socket closed: '+path); _this.sockets = _.filter(_this.sockets, function(_ws){ return ws != _ws; }); }); ws.on('error', function(err){ TL.logger.info('Socket error: '+path); _this.sockets = _.filter(_this.sockets, function(_ws){ return ws != _ws; }); }); _this.sockets.push(ws); }); 

这里是一个铬合金客户端sockets的图片:

在这里输入图像描述

任何想法如何防止空闲连接?

披露:我是Heroku的Node.js平台所有者。

你在客户端看到这个吗? 或者只是错误报告仪表板?

我build议重点关注至less在一个客户端上重现错误,看看是否有实际的影响。 否则,你可能会浪费时间debugging误报。

如果您决定继续debugging,您可能需要安装一个免费的papertrail / nodetime / new relic / strongloop插件来确定哪些请求正在触发H15。