发生超过80个并发连接时,发送/接收时出现Socket.io延迟

时间:2015-08-03 18:02:18

标签: node.js sockets socket.io

我有一个非常简单的例子。

服务器

var WebSocketServer = require('socket.io');
var wsServer = WebSocketServer.listen(8080);

wsServer.on('connection', function (ws) {
    ws.on('data', function (data) {
        console.log(data);
    });
});

客户端

var WebSocketServer = require('socket.io-client');
var wsClient = WebSocketServer.connect(server, {'force new connection': true});

wsClient.on('connect', function () {
    wsClient.emit('data', {message: true});
})

然后我实例化并发调用:

var ClientSocket = require('./path-to-client');
var numInstances = 100;
for (var i = 0; i < numInstances; i++) {
    (function (client_id) {
        var WavegetInstant = new ClientSocket();
    })("client" + i);
}

numInstances小于80时,此工作正常。但是当它超过80时,则在发送/接收消息之前有大约2min的延迟。如果我在console.logwsServer.on('connection'),那么我确实会获得一个连接和一个唯一的网络套接字ID,只有on('data') OR emit('data')被延迟。

感谢帮助

0 个答案:

没有答案