Введение в Mercure + Symfony

Друзья, приветствую! В этой серии видео хотел бы рассказать о таком полезном инструменте, который называется Mercure. Особенно, если вы будете его использовать в связке с фреймворком Symfony, вы можете значительно упростить себе работу с обновлением данных на веб-страницах в реальном времени.

Возможно, вы уже работали с такими технологиями, как вебсокеты (websockets) или Server Site Events(SSE). Это такие технологии, которые встроены в браузер и позволяют нам обновлять данные на странице без ее перезагрузки. То есть, если на сервере у нас поменялись данные, пользователю не нужно перезагружать страницу, чтобы эти данные у него обновились. Как раз таки решением этой задачи и занимается Mercure.

Как это устроено и для чего нужен Mercure?

После установки этой службы, этого инструмента, у нас появляется Mercure Hub т.е. некое хранилище, где будут храниться сообщения, которые будут поступать в него. С этого хранилища уже идет раздача на все устройства, которые к нему подключены, будь то компьютер, мобильный телефон или планшет. В общем, все устройства, которые подключены к этому хабу, будут в реальном времени получать обновления о тех данных, которые обновляются в этом хабе.

Соответственно, если на нашем сервере в нашем приложении произошли какие-то изменения, эти изменения попадают в Mercure Hub методом POST, и соответственно, это разносится по всем устройствам, которые к нему подключены. 

Что собой представляет Mercure

Mercure, по сути, это обычная служба, которая будет также крутиться у вас на вашей операционной системе, также как это делает база данных (Mysql, Postgres, …), либо веб-сервер Apache. То есть, просто отдельная служба, которая у нас каким-то образом работает. 

У этой службы будет свой порт,к которому можно будет подключаться, и соответственно, можно будет с ней взаимодействовать. По сути, Mercure это такой инструмент, который позволяет нам упростить работу с вебсокетами и SSE.

То есть нам не нужно писать низкоуровневый код, а этот инструмент позволяет нам более простыми командами взаимодействовать с нашим хабом хранилищем и обновлять данные в режиме реального времени. 

Для Symfony есть специальная страница,

https://symfony.com/doc/current/mercure.html

 на которой вы можете также посмотреть информацию о специальном бандле, который позволяет адаптировать этот сервис для Symfony. 

Нужно понимать, что Mercure - это не только для Symfony. Его можно использовать с другими фреймворками. Это такой универсальный инструмент, который мы можем использовать. 

Собственно говоря, вот такое вводное видео. Давайте теперь будем погружаться в работу с Mercure Hub в связке с Symfony и посмотрим, как его настроить.