Ich versuche, ein effizientes Streaming node.js
App zu erstellen, in dem der Server auf eine stream
(verkappte Sammlung) in MongoDB
mit mongoose
und dann emittieren den Strom direkt an den Client-Browser in Verbindung bringen würde .Effiziente Socket.io Verteilung mit Mongoose Strom
Worüber ich besorgt bin, ist die Skalierbarkeit meines Designs. Lassen Sie mich wissen, wenn ich falsch liege, aber es scheint, dass gerade jetzt für jeden neuen Webbrowser, der geöffnet wird, eine neue Verbindung zu MongoDB
geöffnet wird (es wird die zuvor verwendete Verbindung nicht wiederverwenden) und daher Es wird viele Ineffizienzen geben, wenn ich viele Benutzer gleichzeitig verbunden habe. Wie kann ich das verbessern?
Ich denke an einen Server - mehrere Client-Typ von Design in socket.io, aber ich weiß nicht, wie das zu erreichen ist.
-Code unten:
Server-Seite (app.js)
:
io.on('connection', function (socket) {
console.log("connected!");
var stream = Json.find().lean().tailable({ "awaitdata": true, numberOfRetries: Number.MAX_VALUE}).stream();
stream.on('data', function(doc){
socket.emit('rmc', doc);
}).on('error', function (error){
console.log(error);
}).on('close', function() {
console.log('closed');
});
});
Client-Seite (index.html)
:
socket.on('rmc', function(json) {
doSomething(); // it just displays the data on the screen
});