Introdução
Como engenheiro da Tailwind Traders, você descobriu que sua empresa está planejando lançar um novo site que fornece informações sobre o preço das ações aos clientes. Recentemente, um estagiário criou um protótipo de site para a nova aplicação e o Lead Architect pediu agora que interviesse e melhorasse a solução. Seu objetivo é atualizar o aplicativo para implementar atualizações automáticas das informações do preço das ações, mas garantir que a comunicação entre o cliente e o servidor aconteça apenas quando os dados forem alterados no servidor.
Arquitetura de protótipos
O protótipo do servidor tem 2 funções:
Nome da função | Tipo de gatilho | Descrição |
---|---|---|
obterAções | Azure Cosmos DB | O servidor é responsável por ler todos os dados da tabela de estoques no banco de dados e retornar esses dados em uma resposta HTTP sempre que o cliente solicitar. |
definirPreço | Temporizador | Uma função para alterar os dados no banco de dados é executada em um gatilho de temporizador. Isso simula o recebimento de alterações de um sistema de back-end. |
Como protótipo, o estagiário simulou a alimentação do estoque com uma função de temporizador, que é atualizada a cada minuto. O site do cliente solicita todas as ações de mercado do endpoint da API /api/getStocks
a cada 5 segundos com o objetivo de exibir dados quase em tempo real. Esta solicitação do cliente não é eficiente. Em vez de extrair os dados do servidor, é mais eficiente para o servidor enviar por push qualquer nova informação de estoque.
Tarefas a realizar
Neste módulo, você irá:
- Execute o protótipo: Visualize o aplicativo cliente, que sonda o servidor para todos os estoques em um intervalo regular
- Melhorar o aplicativo: implemente um aplicativo do Azure Functions sem servidor para transmitir alterações para clientes conectados usando o Serviço SignalR para atualizações quase em tempo real do produto.
- Atualize o aplicativo Web JavaScript cliente para se conectar ao SignalR para obter e exibir as mensagens.