У меня есть небольшая старница на nodejs и express.js. Клиент общается с сервером через socket.io.
client.on('addLocation', function (location) {
var locObj = JSON.parse(location);
var db = mongoose.connection;
db.on('error', function (error) {
console.log(error);
})
db.once('open', function () {
var collection = mongoose.model('esspunkts', essSchema);
var dbEsspunkt = new collection({
name: locObj.name,
rating: {
value: 0,
rated: 0
},
addrr: {
str: locObj.addr.str,
plz: locObj.addr.plz,
tel: locObj.addr.tel,
mapurl: "http://maps.google.com/?q=" + locObj.addr.plz + " " + locObj.addr.ort + " , " + locObj.addr.str,
menulink: locObj.menuurl
}
});
dbEsspunkt.save(function (err, dbObj) {
if (err) {
console.log(err);
} else {
console.log("save successfull ", dbObj);
mongoose.connection.close();
}
})
})
mongoose.connect(mongostr);
})
То есть как видно выше, когде клиент обращается через socket.io к серверу, то на стороне сервера открывается новое соединениек mongodb, а потом снова закрывается.
Собственно первый вопрос, это вообще правильно? Или надо просто в начале открыть соединение и просто держать его открытым? Как это будет выглядеть?
И второй вопрос, я так понимаю, что если будет несколько пользователей, то надо делать очередь? Как это лучше сделать?