Я хочу, чтобы прослушать новые записи в коллекции MongoDB на основе состояния и отправки их клиентам через Socket.ioMongoDb слушатель в Node.js
Как я вижу, это должно выглядеть примерно так:
var lastTime = Date.now();
while(true) {
getRecordsLaterThan(lastTime, function(results) {
if (results) {
for (let result of results) {
lastTime = result.created_on;
// send result via Socket.Io
}
}
});
// sleep(200 ms)
}
Я совершенно новичок в Node и JS, и порой иногда трудно понять, что это поток выполнения. В этом случае невозможно определить, как сделать цикл сна после каждой итерации.
Также у меня есть сомнения, что, возможно, с Узлом это должно быть сделано совершенно по-другому.
Заканчивать этот пакет: https://www.npmjs.com/package/ mongo-watch – JAM
@JAM спасибо, но я считаю, что это не соответствует моим требованиям. Мне нужно прослушать коллекцию с конкретными условиями запроса, и я не вижу, как это можно сделать с помощью этой библиотеки. – Viacheslav
Я думаю, что это может сработать для вашего сценария. Вместо опроса (как и сейчас, каждые 200 миллисекунд) вы можете сделать запрос, когда база данных изменится (используя mongo-watch), а затем решите, нужно ли транслировать результат с помощью socket.io. Это будет решение, основанное на событии, а также облегчение стресса с вашей базы данных и сервера. – JAM