Асинхронный производительный event-driven сервер, легковесная nosql БД и гибкие расширяемые облачные технологии в действии.
Кавычки расставить по вкусу :D
Пишем на досуге распределенную отказоустойчивую систему нотификаций и декомпозиции сообщений. Можно как и очень навороченный чат использовать. Используется для внутренних нужд.
Еще хотим github.com/Kluge-Inc/spectator на него завязать (для этого нужна версионность сообщений, минорные изменения протокола и хотелось бы diff вордовских документов)
Пробовал, похоже такой ник уже использовался и ничего не произошло, хотя выглядело это, будто что-то отвалилось. Я бы предпочёл наличие кнопочки входа.
Для интересующихся этой темой могу порекомендовать видео канал Ильи Кантора на youtube. Там все это до мелочей разбирается.
На счет статьи, я так и не понял, где здесь продвинутый чат???
Статье то уже 7 лет как) Нода сильно изменилась с тех пор, да и я был куда моложе. Убрал бы в черновики, но пусть лучше лежит тут для истории. «Продвинутый» он только для своего времени.
Если запустить второй инстанс, то он просто не заведётся так с ходу без модификации кода, странно было бы вообще ожидать что тут где-то должна была перебрасываться память. Во всяком случае, запросы пропадать никуда точно не станут.
Для масштабирования следовало бы использовать какой-нибудь Redis или любой другой удобный pub/sub. Но нужно было ли это вообще? Максимальный онлайн был на порядки ниже, чем вынес бы один инстанс.
Первого и второго просто не будет. Второй не встанет рядом сам по себе, порты по своей природе используются эксклюзивно, и если два приложения захотят слушать на одном, то какому-то из них не суждено.
Сокет не получится записать в базу данных по другой причине, и циклы там не при чем. Опять же, по природе сокетов.
И редис пройдет. На всякий случай, объясняю:
Можно повесить несколько инстансов на разных портах за балансировщиком (nginx, к примеру), и между ними, в таком случае, будут распределяться клиенты (websocket'ы), но ни коим образом не сообщения в этих самых сокетах. Сокет однозначно связывает один инстанс сервера с одним инстансом клиента. В таком случае без изменений кода будет работать всё, за исключением мгновенных уведомлений. Выйдет так, что уведомление о новом сообщении получат только те же клиенты что связаны с тем же инстансом сервера. Это решается рассылкой уведомлений (событий нового сообщения) между инстансами серверов через Redis pub/sub.
Продвинутый чат на Node.JS