Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在服务器上配置心跳超时、心跳间隔和关闭超时_Angularjs_Node.js_Express_Socket.io_Ionic Framework - Fatal编程技术网

Angularjs 在服务器上配置心跳超时、心跳间隔和关闭超时

Angularjs 在服务器上配置心跳超时、心跳间隔和关闭超时,angularjs,node.js,express,socket.io,ionic-framework,Angularjs,Node.js,Express,Socket.io,Ionic Framework,我有一个node.js服务器,我使用socket.io在服务器和客户端之间进行实时通信。我观察到,如果一个移动客户端(使用Ionic框架)突然断开连接,而不让服务器知道,那么套接字将持续数小时(或永远)处于活动状态。我已经阅读并查看了他们的文档,他们有如下选择 pingInterval、pingtimeout、心跳间隔、心跳超时、关闭超时 如何在服务器上配置这些值 以下哪些值已被弃用 这是我的密码 var express = require('express'); var app = expre

我有一个node.js服务器,我使用socket.io在服务器和客户端之间进行实时通信。我观察到,如果一个移动客户端(使用Ionic框架)突然断开连接,而不让服务器知道,那么套接字将持续数小时(或永远)处于活动状态。我已经阅读并查看了他们的文档,他们有如下选择
pingInterval、pingtimeout、心跳间隔、心跳超时、关闭超时

如何在服务器上配置这些值

以下哪些值已被弃用

这是我的密码

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
,如下所述:

另外,由于io.set已不存在,请确保按如下方式设置选项

var io=require('socket.io'))({
ping超时:5000
})

更多信息,请访问:


然而,如果这不起作用,很有可能爱奥尼亚实际上是在后台保持连接。从大约一年前的一个项目中,我记得有多个类似这样的问题,当它出现在后台时,我最终强制制作了ionic disconnect socket。

关于
pingInterval
?正如文档所说,
pingInterval(数字):在发送新的ping数据包(25000)之前有多少毫秒。我认为这与你的情况无关。