Введение
Как инженер с Tailwind Traders, вы узнали, что ваша компания планирует запустить новый веб-сайт, предоставляющий сведения о ценах акций клиентам. Недавно стажер создал прототип сайта для нового приложения, а теперь ведущий архитектор просит вас усовершенствовать решение. Ваша цель — изменить приложение, реализовав автоматические обновления сведений о курсе акций, но так, чтобы обмен данными между клиентом и сервером происходил только при изменении данных на сервере.
Архитектура прототипа
Прототип сервера имеет 2 функции:
Имя функции | Тип триггера | Description |
---|---|---|
getStocks | Azure Cosmos DB | Сервер отвечает за чтение всех данных из таблицы запасов в базе данных и возврат данных в ответе HTTP при каждом запросе клиента. |
setPrice | Таймер | Функция для изменения данных в базе данных выполняется в триггере таймера. Это имитирует получение изменений из серверной системы. |
В качестве прототипа интерн имитировал канал акций с функцией таймера, которая обновляется каждую минуту. Клиентский веб-сайт запрашивает все акции из конечной /api/getStocks
точки API каждые 5 секунд при попытке отобразить практически данные в режиме реального времени. Этот запрос клиента не является эффективным. Вместо извлечения данных с сервера сервер эффективнее отправлять новые сведения о запасе.
Задачи, которые необходимо выполнить
В этом модуле рассматриваются следующие темы:
- Запуск прототипа: просмотр клиентского приложения, которое опрашивает сервер для всех запасов по регулярному интервалу.
- Улучшение приложения: реализация бессерверного приложения Функции Azure для трансляции изменений подключенным клиентам с помощью Служба SignalR продукта почти в режиме реального времени.
- Обновите клиентское веб-приложение JavaScript, чтобы подключиться к SignalR, чтобы получить и отобразить сообщения.