Как эффективно использовать mongostream с socket.io в nodejs? - PullRequest
0 голосов
/ 23 февраля 2020

Как написать mongostream и socketio, чтобы избежать предупреждения о достижении лимита слушателя на маршруте express js. Я использую паспорт js и хочу прослушать изменения для вошедшего в систему пользователя.

На интерфейсе реагирования я делаю

axios.get('/notes');
socket.on('notes', data=>{
     setNotes(data);
})

На сервере

const changestream = Notes.watch()

router.get('/notes', isAuthenticated, async(req, res)=>{
    const io = req.app.get('io');
    const result = await Notes.find({user:req.user.email})

    io.emit('notes',result)
    return res.send('OK')

    changestream('change', async change=>{
        const result= await Notes.find({user:req.user.email})

        io.emit('notes',result)

    });
})

Есть это правильный путь? Я думаю, что он будет излучать, даже если заметки будут обновлены для другого пользователя. Также, как закрыть соединение после того, как пользователь закрывает вкладку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...