如何配置选项'关闭超时'用下面的代码?
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
...
server.listen(port, ip);
我阅读了有关socket.io的文档,我发现:
var socket = require('socket.io')({
// options go here
});
但我无法添加选项,因为我使用server
变量。
感谢。
答案 0 :(得分:2)
你见过this吗?
var io = require('socket.io').listen(80);
io.set('close timeout', 60);
io.set('heartbeat timeout', 60);
也许像
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.set('close timeout', 60);
server.listen(port, ip);
编辑:这是一个很长的镜头,但是:
var app = require('express')();
var server = require('http').Server(app);
server['close timeout'] = 60;
var io = require('socket.io')(server);
server.listen(port, ip);
修改强> 在socket.io docs上找到了这个:
// pass a server and the `serveClient` option
var io = require('socket.io')(http, { serveClient: false });
那么,这个怎么样?
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server, { 'close timeout': 60});
server.listen(port, ip);
另一个编辑: 再次docs:
传递给socket.io的相同选项总是传递给 engine.io创建的服务器。请参阅engine.io options作为参考。
pingTimeout (Number): how many ms without a pong packet to consider the connection closed (60000)
你能试试吗?
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server, { pingTimeout: 60000});
server.listen(port, ip);
答案 1 :(得分:0)
根据最新版本。 { pingTimeout: 60000}
对我来说很好。
io.set('heartbeat timeout', 10)
同样适用,但set
将来会被移除。