Сегодня мы познакомим вас с RethinkDB и socket.io. Две отличные технологии, которые отлично работают вместе для приложений реального времени.
Давайте установим RethinkDb, выполнив следующую команду
brew update && brew install rethinkdb
Запустите сервер RethinkDB, выполнив следующую команду в терминале
rethinkdb
Перейдите на http: // localhost: 8080 /, чтобы изучить панель управления RethinkDB, давайте создадим базу данных с именем testdb и таблицу с именем orders.
RethinkDB - это база данных, подобная mongoDB, но с гораздо большими возможностями. Его ключевая особенность - это changefeed, который позволяет вам подписаться на канал с заданным ReQL.
В этом примере мы будем использовать socket.io, чтобы отправить сообщение с сервера клиенту и заставить клиента прослушивать сообщение сервера (обновление таблицы заказов).
Вот код с нашего сервера.
Наш сервер будет создавать канал изменений при каждом изменении в таблице заказов (вставка, обновление или удаление) и отправлять клиенту сообщение сокета (orders_updated) при обнаружении изменения.
Теперь давайте посмотрим на нашего клиента, который очень прост, он только создает соединение socket.io и слушает сообщение «orders_updated» с сервера. Как только сообщение получено, мы записываем элемент в консоль.
Теперь давайте вставим несколько заказов в нашу таблицу RethinkDB, изменение должно отображаться в клиентской консоли в реальном времени.
Вот и все, что мы слышим от клиента в режиме реального времени об обновлениях из таблицы заказов.
Вы можете проверить полный код в моем репозитории на github.
Спасибо за чтение и удачного кодирования!