我有一个基本的 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?你有同样的“错误”吗?
答案 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,问题解决了!