Использование NodeJS для просмотра обновлений в реальном времени с использованием базы данных - PullRequest
4 голосов
/ 29 сентября 2011

Я играл с Nodejs и теперь хотел знать, смогу ли я создать живое обновление для представления / страницы, как показано в этом руководстве здесь

Приведенный выше пример применим ко всем пользователям на сайте, и я хочу, чтобы мои обновления предназначались для определенных пользователей.

Создаю ли я массив, хранящий все клиентские сокеты, сокет создается при входе пользователей в систему.

Другое дело, как я могу обновить веб-страницу или представление, если что-то обновилось в базе данных, я опрашиваю сервер каждую секунду?

Я использую базу данных MySQL, должен ли я вместо этого использовать Redis?

РЕДАКТИРОВАТЬ: еще один вопрос Мне было интересно, как nodejs может проверить, были ли обновлены или изменены поля базы данных и чем обновлять представление или веб-страницу?

спасибо

1 Ответ

1 голос
/ 29 сентября 2011

Если я создаю массив, хранящий все клиентские сокеты, при входе пользователей создается сокет.

Если вы используете модуль socket.io для управления соединением между клиентами и сервером вам не нужно беспокоиться о структуре или хранимых клиентах, так как это будет выполняться для вас в фоновом режиме.Он также предлагает различные запасные варианты (в том числе длинный опрос), если клиентские браузеры не поддерживают расширенные транспорты, такие как WebSockets.

Еще одна вещь, как я могу обновить веб-страницу или представление, если что-то обновилось в базе данных, сделать это?опрашивать сервер каждую секунду?

НЕ опрашивать сервер каждую секунду, так как транспорты, такие как длинный опрос и WebSockets, были введены, чтобы ИЗБЕГАТЬ этого.Поскольку у вас будет постоянное соединение между клиентом и сервером с socket.io (в котором используются такие методы и технологии, как длинный опрос или WebSockets), вы можете довольно легко создать систему с выравниванием, которая обновляет или уведомляет определенных клиентов об изменении в данный момент.когда это произойдет.

Я использую базу данных MySQL, стоит ли вместо этого использовать Redis?

Redis - очень хорошее хранилище ключей / значений для реального времени, часто обновляемоеданные, которые не требуют сложных запросов.Если вам нужна расширенная поддержка запросов к вашим данным, попробуйте взглянуть на MongoDB , например.

...