Ich versuche, eine Nachricht in einen socket.io
Raum mit socket.io-mongodb-emitter
zu emittieren. Mein Problem ist, dass mein Skript nie existiert, weil es eine Verbindung zu mongodb
lebendig hält.Schließen mubsub client nach dem Senden mit socket.io-mongodb-emitter
Bitte überprüfen Sie meine Beispiele unten, und geben Sie mir einen Rat, wie kann ich das Skript schließen mongodb
Verbindung und lassen Sie sich selbst verlassen.
emitter.js Dieses Skript gibt die Nachricht aus, der Client erhält sie, aber der Prozess wird nicht beendet.
var io = require('socket.io-mongodb-emitter')("mongodb://localhost:27017/test");
io.in('someRoom').emit('someMessage');
Emitter-2.js das Skript beendet, aber der Kunde bekommt nie die Nachricht.
var io = require('socket.io-mongodb-emitter')("mongodb://localhost:27017/test");
io.in('someRoom').emit('someMessage');
io.client.close();
Emitter-3.js dieses perfekt funktioniert, erhält der Client die Nachricht, und der Prozess beendet. Aber setTimeout
ist eine extrem schlechte Lösung, es muss einen richtigen Weg geben, diesen Prozess von selbst zu beenden.
var io = require('socket.io-mongodb-emitter')("mongodb://localhost:27017/test");
io.in('someRoom').emit('someMessage');
setTimeout(function() {
io.client.close();
},100);