2016-04-25 3 views
4

I auf Node.js V4.1.1 am vermissen und das Arbeiten mit Socket.ioUnter starken Belastung, Client zu einem socket.io verbindet, kann das erste Paket mit node.js

wenn Client zu Server-Socket und Start verbunden Pakete zu diesem Zeitpunkt erstes Paket verpasst auf Server verpasst.

haben Sie eine Idee, was ist der Grund dafür? Bitte beachten Sie, dass wir jeweils rund 900 Verbindungen haben.

var http = module.exports = require('http'); 
var app = module.exports = express(); 
var httpsOptions = { 
    key: fs.readFileSync('server.key'), 
    cert: fs.readFileSync('certificate.crt') 
}; 
var Server = https.createServer(httpsOptions, app); 
var io = module.exports = require('socket.io').listen(Server); 
io.set("transports", ["xhr-polling", "web socket", "polling", "htmlfile"]); 
io.sockets.on("connection", function(socket) 
{ 
    client.on('msg', function(request) 
    { 
     console.log("event get --> " + request); 
    }); 
    client.on('error', function(exc) 
    { 
     console.log("ignoring exception: " + exc); 
    }); 
    client.on('ping', function(request) 
    { 
     client.emit('pong', request); 
     client.removeListener('ping', function() {}); 
    }); 
    client.on('disconnect', function(reason) 
    { 
     console.log("socket disconnect " + reason); 
    }); 
}); 
+0

verwenden Sie rabbitmq zum Senden dieses Pakets ..? –

+0

ja ich benutze rabbitmq und redis –

+1

dann kann es sein, dass es Problem mit dem gleichen Namen der Warteschlange, die Sie für Server verwenden, es bedeutet, wenn Sie Server zu der Zeit erstellen Sie einige Namen der Warteschlange, überprüfen Sie diese zuerst. –

Antwort

0

In diesem Fall tatsächlich Fehler nicht in Socket oder node.js. Fehler in mongodb, mongodb nehmen so viel Ladung, dass alle Ereignisse zu spät sind. Auch neue Verbindung nimmt Last im Anmeldungsprozeß. Wir erhöhen gerade die Konfiguration von mongodb und alles, das gut funktioniert.

Verwandte Themen