Introdução

Concluído

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 colaborador criou um protótipo de site para a nova aplicação e o Arquiteto Principal pediu-lhe agora que intervenha e melhore a solução. O seu objetivo é atualizar a aplicação para implementar atualizações automáticas das informações de preço de ações, mas certificar-se de que a comunicação entre o cliente e o servidor acontece apenas quando existe alteração de dados no servidor.

Arquitetura de protótipos

O protótipo do servidor tem 2 funções:

Nome da função Tipo de acionador Description
getStocks 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.
setPreç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 do /api/getStocks endpoint da API a cada 5 segundos na tentativa de exibir dados quase em tempo real. Este pedido de 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, 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.