Задать вопрос

Как реализовать онлайн обновления счетчиков уведомлений?

Есть такого рода счетчики на разрабатываемом сайте. Задача стоит онлайн обновлять их значения, по типу как в соцсетях. Сейчас написан функционал которые по setInterval и посредством аякс запросов обновляет их, в принципе все работает.
Но хочется реализовать этот момент более профессионально.
Думаю в сторону long polling технологии. И понимаю это таким образом: клиент устанавливает соединение с сервером и ждет когда появится какое либо новое событие, после чего получает данные и закрывает соединение, далее опять устанавливает соединение и т.д

С клиентом все понятно, но как организовать на сервере перебор информации из базы данных, отслеживание изменений и выдачу её клиенту?

Немного изучил Dklab Realplexor (dklab.ru/lib/dklab_realplexor/), но вроде как он создан для других целей, буду рад если кто поделиться опытом и подскажет как решить эту задачу правильно.
Спасибо!large.gif
  • Вопрос задан
  • 2652 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
@cybervito21
Я бы сделал на NodeJS (Express.io) + MongoDB + Mongoose + AngularJS (клиент).

Обновления (если говорить про сокеты) работают немного иначе: вы при очередном обновлении счетчика просто говорите всем подключенным юзерам, что он увеличивается (ну или уменьшается).

Там есть и websockets и xhr-longpolling и еще несколько технологий. Всё в одном.
Ответ написан
Комментировать
С этой задачей отлично справятся сокеты + nodejs. Запусти отдельный сервер на nodejs, который отлавливает обновление счетчика и рассылает их подключенным соединениям :-)
Отличные видео уроки по nodejs, в самом низу организован чат с помощью сокетов.
http://learn.javascript.ru/nodejs-screencast#часть...

По крайней мере, я бы так организовал даную фичу :-)
Шикарного кода!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
25 дек. 2024, в 08:00
20000 руб./за проект
25 дек. 2024, в 07:53
20000 руб./за проект
25 дек. 2024, в 07:45
20000 руб./за проект