Comments 27
Что-то ссылка на демо уже не работает :)
function $(a){return document.getElementById(a)}
А почему не так?
var $ = document.getElementById.bind(document);
о, исходники в архиве, как в старые добрые времена =)
P.S. почему не стильный, модный, молодежный github/bitbucket/etc?
P.S. почему не стильный, модный, молодежный github/bitbucket/etc?
Пишем на досуге распределенную отказоустойчивую систему нотификаций и декомпозиции сообщений. Можно как и очень навороченный чат использовать. Используется для внутренних нужд.
Схема работы (немного не правильная):
github.com/Kluge-Inc/talkwut-docs
Веб (можно использовать как чат с комнатами + рассылка на почту):
github.com/Kluge-Inc/talkwut-web
Ядро:
github.com/Kluge-Inc/talkwut-core
Desktop клиент:
github.com/Kluge-Inc/talkwut-notifier
Если кому-то интересно — то можем написать статью.
Схема работы (немного не правильная):
github.com/Kluge-Inc/talkwut-docs
Веб (можно использовать как чат с комнатами + рассылка на почту):
github.com/Kluge-Inc/talkwut-web
Ядро:
github.com/Kluge-Inc/talkwut-core
Desktop клиент:
github.com/Kluge-Inc/talkwut-notifier
Если кому-то интересно — то можем написать статью.
мне интересно
Через неделю — две, думаю, напишем.
Пока в божеский вид приведем.
Еще хотим github.com/Kluge-Inc/spectator на него завязать (для этого нужна версионность сообщений, минорные изменения протокола и хотелось бы diff вордовских документов)
В перспективе там должен быть базовый campfire.
Пока в божеский вид приведем.
Еще хотим github.com/Kluge-Inc/spectator на него завязать (для этого нужна версионность сообщений, минорные изменения протокола и хотелось бы diff вордовских документов)
В перспективе там должен быть базовый campfire.
Очень интересно, напишите пожалуйста!
Делал как-то в свободное время чат на node.js, плюс к нему игру викторина, вот что получилось: vk.com/appquiz :)

Оригинальный интерфейс. Где кнопка входа-то?
Ссылки выдаюи 404. Звлейте исходники на гитхаб. За статью спасибо, плюсанул.
Для интересующихся этой темой могу порекомендовать видео канал Ильи Кантора на youtube. Там все это до мелочей разбирается.
На счет статьи, я так и не понял, где здесь продвинутый чат???
На счет статьи, я так и не понял, где здесь продвинутый чат???
Демо не работает, не могу залогинится. Поправьте, пожалуйста
Статье то уже 7 лет как) Нода сильно изменилась с тех пор, да и я был куда моложе. Убрал бы в черновики, но пусть лучше лежит тут для истории. «Продвинутый» он только для своего времени.
Если запустить второй инстанс, то он просто не заведётся так с ходу без модификации кода, странно было бы вообще ожидать что тут где-то должна была перебрасываться память. Во всяком случае, запросы пропадать никуда точно не станут.
Для масштабирования следовало бы использовать какой-нибудь Redis или любой другой удобный pub/sub. Но нужно было ли это вообще? Максимальный онлайн был на порядки ниже, чем вынес бы один инстанс.
Если запустить второй инстанс, то он просто не заведётся так с ходу без модификации кода, странно было бы вообще ожидать что тут где-то должна была перебрасываться память. Во всяком случае, запросы пропадать никуда точно не станут.
Для масштабирования следовало бы использовать какой-нибудь Redis или любой другой удобный pub/sub. Но нужно было ли это вообще? Максимальный онлайн был на порядки ниже, чем вынес бы один инстанс.
Первого и второго просто не будет. Второй не встанет рядом сам по себе, порты по своей природе используются эксклюзивно, и если два приложения захотят слушать на одном, то какому-то из них не суждено.
Сокет не получится записать в базу данных по другой причине, и циклы там не при чем. Опять же, по природе сокетов.
И редис пройдет. На всякий случай, объясняю:
Можно повесить несколько инстансов на разных портах за балансировщиком (nginx, к примеру), и между ними, в таком случае, будут распределяться клиенты (websocket'ы), но ни коим образом не сообщения в этих самых сокетах. Сокет однозначно связывает один инстанс сервера с одним инстансом клиента. В таком случае без изменений кода будет работать всё, за исключением мгновенных уведомлений. Выйдет так, что уведомление о новом сообщении получат только те же клиенты что связаны с тем же инстансом сервера. Это решается рассылкой уведомлений (событий нового сообщения) между инстансами серверов через Redis pub/sub.
Сокет не получится записать в базу данных по другой причине, и циклы там не при чем. Опять же, по природе сокетов.
И редис пройдет. На всякий случай, объясняю:
Можно повесить несколько инстансов на разных портах за балансировщиком (nginx, к примеру), и между ними, в таком случае, будут распределяться клиенты (websocket'ы), но ни коим образом не сообщения в этих самых сокетах. Сокет однозначно связывает один инстанс сервера с одним инстансом клиента. В таком случае без изменений кода будет работать всё, за исключением мгновенных уведомлений. Выйдет так, что уведомление о новом сообщении получат только те же клиенты что связаны с тем же инстансом сервера. Это решается рассылкой уведомлений (событий нового сообщения) между инстансами серверов через Redis pub/sub.
/del
Sign up to leave a comment.
Продвинутый чат на Node.JS