Socket.io 1.0:配置关闭超时
Posted
技术标签:
【中文标题】Socket.io 1.0:配置关闭超时【英文标题】:Socket.io 1.0 : configure close timeout 【发布时间】:2014-12-15 13:14:35 【问题描述】:如何使用以下代码配置“关闭超时”选项?
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
变量。
谢谢。
【问题讨论】:
【参考方案1】:根据最新版本。 pingTimeout: 60000
对我来说很好。
io.set('heartbeat timeout', 10)
也可以,但set
将来会被删除。
【讨论】:
【参考方案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);
【讨论】:
io.set() 自 socket.io 1.0 以来已弃用,我不能使用它 '服务器['关闭超时'] = 60;'这不是一个坏主意,但它不起作用。我想知道我做事是否正确-_-' 我已经尝试过 'var io = require('socket.io')(server, 'close timeout': 60);' => 没用 :( 这很奇怪,这就是为什么我想知道我是否做错了什么...... 我不是 socket.io 专家,但我去检查了it's source,但找不到“关闭超时”。如果此选项在新版本中被禁止,那么应该有更好的方法来实现您正在尝试做的事情...... @user3146857 -socket.io
建立在 engine.io
之上。 engine.io
是交通工具。以上是关于Socket.io 1.0:配置关闭超时的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 socks5 代理使用 JavaScript socket.io-client 库?