nepster-web
@nepster-web

Как правильно отдать сообщения из redis сокетам?

Использую node.js, socket.io и redis.

Есть скрипт на php, который в зависимости от события кидает сообщение в канал Redis (pub/sub). Далее в свою очередь есть node.js, которые так-же подписан на каналы редиса и параллельно работает с сокетами.

Задача такая, например создается пост на сайте, сообщение летит в редис, node.js принимает сообщение и всем сокетам в определенной комнате необходимо на клиент послать данные. Так как язык все-же асинхронный, возникла проблема: Как это правильно сделать?

Если сделать как-то так, сообщение летит всех сокетом, примерно столько раз, сколько всего подключенных сокетов.
io.on('connection', function (socket) {
...
    redisClient.on("message", function (channel, message) {
        message = JSON.parse(message);

        console.log('---- redis');
        console.log(message);

        io.to(room).emit('test', {
            channel: channel,
            message: message
        });
    });


Как правильно послать одно сообщение (получаем через редис, пуляем на соккеты) ?
  • Вопрос задан
  • 613 просмотров
Решения вопроса 1
nepster-web
@nepster-web Автор вопроса
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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