在服务器上configuration心跳超时,心跳间隔和closures超时

我有一个node.js服务器,我使用socket.io来实现服务器和客户端之间的实时通信。 我观察到,如果一个移动客户端(使用Ionic Framework)突然断开连接,而不让服务器知道它,那么这个套接字就会活着几个小时(或永远)。 我已阅读并查看他们的文档,他们有像pingInterval, pingtimeout, heartbeat interval, heartbeat timeout, close timeout

如何在我的服务器上configuration这些值?

以下哪些值已被弃用?

这是我的代码。

 var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); io.set('heartbeat interval', 5000); io.set('heartbeat timeout', 8000); io.set('timeout', 5000); io.on('connection', function(socket){...} 

这些似乎都没有工作。 任何帮助或指导,高度赞赏。

PS:当客户端断开连接时,我正在拼接我的集合的套接字,当客户端告诉服务器他们想要正常断开连接时,它正常工作。

你必须使用pingTimeout在这里提到: https : //github.com/Automattic/socket.io/issues/1900

另外请确保设置您的选项,因为io.set不见了。

var io = require('socket.io')({ pingTimeout: 5000 })

更多: http : //socket.io/docs/migrating-from-0-9/#configuration-differences

但是,如果这不起作用,离子的可能性实际上是保持连接的背景。 从一年前的一个项目中,我记得有过这样的多个问题,最后在离开后台的时候强制性地制作了离子sockets。