Комментарии 27
Что-то ссылка на демо уже не работает :)
+1
function $(a){return document.getElementById(a)}
А почему не так?
var $ = document.getElementById.bind(document);
0
о, исходники в архиве, как в старые добрые времена =)
P.S. почему не стильный, модный, молодежный github/bitbucket/etc?
P.S. почему не стильный, модный, молодежный github/bitbucket/etc?
+3
Пишем на досуге распределенную отказоустойчивую систему нотификаций и декомпозиции сообщений. Можно как и очень навороченный чат использовать. Используется для внутренних нужд.
Схема работы (немного не правильная):
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
Если кому-то интересно — то можем написать статью.
+6
мне интересно
+4
Через неделю — две, думаю, напишем.
Пока в божеский вид приведем.
Еще хотим github.com/Kluge-Inc/spectator на него завязать (для этого нужна версионность сообщений, минорные изменения протокола и хотелось бы diff вордовских документов)
В перспективе там должен быть базовый campfire.
Пока в божеский вид приведем.
Еще хотим github.com/Kluge-Inc/spectator на него завязать (для этого нужна версионность сообщений, минорные изменения протокола и хотелось бы diff вордовских документов)
В перспективе там должен быть базовый campfire.
0
Очень интересно, напишите пожалуйста!
0
Делал как-то в свободное время чат на node.js, плюс к нему игру викторина, вот что получилось: vk.com/appquiz :)
-1
Оригинальный интерфейс. Где кнопка входа-то?
+1
Ссылки выдаюи 404. Звлейте исходники на гитхаб. За статью спасибо, плюсанул.
0
Для интересующихся этой темой могу порекомендовать видео канал Ильи Кантора на youtube. Там все это до мелочей разбирается.
На счет статьи, я так и не понял, где здесь продвинутый чат???
На счет статьи, я так и не понял, где здесь продвинутый чат???
0
Демо не работает, не могу залогинится. Поправьте, пожалуйста
0
НЛО прилетело и опубликовало эту надпись здесь
Статье то уже 7 лет как) Нода сильно изменилась с тех пор, да и я был куда моложе. Убрал бы в черновики, но пусть лучше лежит тут для истории. «Продвинутый» он только для своего времени.
Если запустить второй инстанс, то он просто не заведётся так с ходу без модификации кода, странно было бы вообще ожидать что тут где-то должна была перебрасываться память. Во всяком случае, запросы пропадать никуда точно не станут.
Для масштабирования следовало бы использовать какой-нибудь Redis или любой другой удобный pub/sub. Но нужно было ли это вообще? Максимальный онлайн был на порядки ниже, чем вынес бы один инстанс.
Если запустить второй инстанс, то он просто не заведётся так с ходу без модификации кода, странно было бы вообще ожидать что тут где-то должна была перебрасываться память. Во всяком случае, запросы пропадать никуда точно не станут.
Для масштабирования следовало бы использовать какой-нибудь Redis или любой другой удобный pub/sub. Но нужно было ли это вообще? Максимальный онлайн был на порядки ниже, чем вынес бы один инстанс.
0
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Первого и второго просто не будет. Второй не встанет рядом сам по себе, порты по своей природе используются эксклюзивно, и если два приложения захотят слушать на одном, то какому-то из них не суждено.
Сокет не получится записать в базу данных по другой причине, и циклы там не при чем. Опять же, по природе сокетов.
И редис пройдет. На всякий случай, объясняю:
Можно повесить несколько инстансов на разных портах за балансировщиком (nginx, к примеру), и между ними, в таком случае, будут распределяться клиенты (websocket'ы), но ни коим образом не сообщения в этих самых сокетах. Сокет однозначно связывает один инстанс сервера с одним инстансом клиента. В таком случае без изменений кода будет работать всё, за исключением мгновенных уведомлений. Выйдет так, что уведомление о новом сообщении получат только те же клиенты что связаны с тем же инстансом сервера. Это решается рассылкой уведомлений (событий нового сообщения) между инстансами серверов через Redis pub/sub.
Сокет не получится записать в базу данных по другой причине, и циклы там не при чем. Опять же, по природе сокетов.
И редис пройдет. На всякий случай, объясняю:
Можно повесить несколько инстансов на разных портах за балансировщиком (nginx, к примеру), и между ними, в таком случае, будут распределяться клиенты (websocket'ы), но ни коим образом не сообщения в этих самых сокетах. Сокет однозначно связывает один инстанс сервера с одним инстансом клиента. В таком случае без изменений кода будет работать всё, за исключением мгновенных уведомлений. Выйдет так, что уведомление о новом сообщении получат только те же клиенты что связаны с тем же инстансом сервера. Это решается рассылкой уведомлений (событий нового сообщения) между инстансами серверов через Redis pub/sub.
0
/del
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Продвинутый чат на Node.JS