Введение

Завершено

Как инженер с Tailwind Traders, вы узнали, что ваша компания планирует запустить новый веб-сайт, предоставляющий сведения о ценах акций клиентам. Недавно стажер создал прототип сайта для нового приложения, а теперь ведущий архитектор просит вас усовершенствовать решение. Ваша цель — изменить приложение, реализовав автоматические обновления сведений о курсе акций, но так, чтобы обмен данными между клиентом и сервером происходил только при изменении данных на сервере.

Архитектура прототипа

Прототип сервера имеет 2 функции:

Имя функции Тип триггера Description
getStocks Azure Cosmos DB Сервер отвечает за чтение всех данных из таблицы запасов в базе данных и возврат данных в ответе HTTP при каждом запросе клиента.
setPrice Таймер Функция для изменения данных в базе данных выполняется в триггере таймера. Это имитирует получение изменений из серверной системы.

В качестве прототипа интерн имитировал канал акций с функцией таймера, которая обновляется каждую минуту. Клиентский веб-сайт запрашивает все акции из конечной /api/getStocks точки API каждые 5 секунд при попытке отобразить практически данные в режиме реального времени. Этот запрос клиента не является эффективным. Вместо извлечения данных с сервера сервер эффективнее отправлять новые сведения о запасе.

Задачи, которые необходимо выполнить

В этом модуле рассматриваются следующие темы:

  • Запуск прототипа: просмотр клиентского приложения, которое опрашивает сервер для всех запасов по регулярному интервалу.
  • Улучшение приложения: реализация бессерверного приложения Функции Azure для трансляции изменений подключенным клиентам с помощью Служба SignalR продукта почти в режиме реального времени.
  • Обновите клиентское веб-приложение JavaScript, чтобы подключиться к SignalR, чтобы получить и отобразить сообщения.