指定心跳的Socket.io

我似乎无法find如何设置socket.io的心跳选项? 我希望能够指定发生“timemout”时发生的情况,以及服务器在一段时间内还没有收到客户的任何响应。

由于某些原因,断开连接事件并不总是触发,即使它已经超过了一个小时而没有连接客户端。 这通常发生在独立的Java socket.io客户端上

Socket.IO使用engine.io,它允许您指定ping间隔和ping超时 ,如下所示:

var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http, {'pingInterval': 2000, 'pingTimeout': 5000}); 

(2秒间隔和5秒超时只是一个例子,这将是频繁和低效的方式)

对我来说,以下工作:

 var app = express(); var server = require('http').createServer(app); var io = require('socket.io')(server); io.set('heartbeat timeout', 4000); io.set('heartbeat interval', 2000); 

对于软件包依赖版本:

 "express": "^4.12.3", "socket.io": "1.0"