Angularjs 在服务器上配置心跳超时、心跳间隔和关闭超时
我有一个node.js服务器,我使用socket.io在服务器和客户端之间进行实时通信。我观察到,如果一个移动客户端(使用Ionic框架)突然断开连接,而不让服务器知道,那么套接字将持续数小时(或永远)处于活动状态。我已经阅读并查看了他们的文档,他们有如下选择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
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)之前有多少毫秒。我认为这与你的情况无关。