Ответы пользователя по тегу Redis
  • Как масштабировать чат написанный на socket.io/nodejs?

    undassa
    @undassa
    Last.Backend
    io.on('connection', function (socket) {
    //
    });


    Данное событие сработает при успешном создании постоянного соединения между клиентом и сервером.
    Так как сокет соединение - это соединение в единственном экземпляре, то оно попадёт либо на 1й инстанс либо на 2й инстанс. И данное событие сработает либо тут либо там.

    Если уж вам по какой то причине необходимо увидеть в консоли событие подключения в обоих инстансах,
    я бы попробовал следующее:

    1. Использовал бы в качестве канала между инстансами нативный модуль redis.
    2. При успешном подключении послал бы в канал redis.publish уведомление по новом подключении

    НО! Необходимо вручную определять события которые надо прикидывать на второй инстанс, иначе от такого масштабирования нет толку, потому что оба инстанса будут обрабатывать одни и теже команды.

    Резюмируя: В этом нет смысла. Если есть необходимость - надо просто через редис уведомить второй сервис.
    Ответ написан
    2 комментария