@Higrok

Как отправить данные через сокеты?

Здравствуйте! Как можно достать данные из обработчика в ExpressJS, и "переместить" их в сокеты?

Ответ на вопрос "Зачем это вообще делать, если данные и так передаются через response?": часть данных нужно выводить в режиме реального времени у всех пользователей на странице, и насколько мне известно, socket.io предназначен как раз для этого.

app.post('/test', jsonParser, (req, res) => {
    const dto_test = {
       test: 'asd'
    }

    const test = new Test(dto_test);
    test.generateTest(result => {
        // Здесь каким-то образом нужно передавать данные в сокет ниже.
        res.json({
            result: result.test
        });
    });
});

io.on('connection', (socket) => {
    console.log('a user connected');

    // Будущая отправка данных пользователю.

    socket.on('disconnect', () => {
        console.log('a user disconnected');
    })
})
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Babayka_od
@Babayka_od
Full-stack developer
Чтобы отправить данные всем, нужно вызывать io.emit
test.generateTest(result => {
  io.emit('some event', { result });
  res.json({
    result: result.test,
  });
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы