Сегодня мы познакомим вас с 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.

Спасибо за чтение и удачного кодирования!