3k连接后socketio冻结

时间:2014-12-22 16:52:30

标签: socket.io

我有一个基本的 socketio服务器,如:

var io = require('socket.io');
var express = require('express');

var server = express();
var serverApp = server.listen(3000);
io = io.listen(serverApp);

io.sockets.on('connection', function (socket) {
});

一个基本的客户端节点:

var io = require('socket.io-client');

function startTest() {
    var socket = io.connect('http://localhost:3000', {forceNew: true});

    socket.on('disconnect', function (err) {
        startTest();
    });

    socket.on('connect', function () {
        nbConnexions++;
        console.log('connected, nbConnexions : ' + nbConnexions);

        socket.disconnect();
    });
}


startTest();

在~3k连接后,服务器冻结,并在1分钟后继续,并在3k以后再次冻结,并再次...

问题可能来自于socketio?你有同样的“错误”吗?

2 个答案:

答案 0 :(得分:0)

我没有内存泄漏。 Socketio只是没有回应。如果我在3k连接之后重新启动服务器并冻结,它会在连接新请求之前等待1分钟。

我在debian版本7.6上,有socketio 1.2.1 我没有在Windows上使用相同代码的问题。

Linux是否阻止某些资源/端口avec 3k套接字?

答案 1 :(得分:0)

好的,我找到了

3k连接后,我的

值相同
sysctl net.netfilter.nf_conntrack_count

sysctl net.nf_conntrack_max

将/ proc / sys / net / nf_conntrack_max中的值增加到65535,问题解决了!