Introdução

Concluído

Como engenheiro da Tailwind Traders, você descobriu que a sua empresa está planejando lançar um novo site que fornece informações sobre os preços de ações aos clientes. Recentemente, um estagiário criou um protótipo de site para o novo aplicativo e agora o arquiteto líder pediu que você participe e aprimore a solução. Seu objetivo é atualizar o aplicativo para implementar atualizações automáticas das informações de preço de ações, mas garantindo que a comunicação entre o cliente e o servidor aconteça somente quando houver alguma alteração de dados no servidor.

Arquitetura de protótipo

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

Nome da função Tipo de gatilho Descrição
getStocks Azure Cosmos DB O servidor é responsável por ler todos os dados da tabela de ações no banco de dados e retornar esses dados em uma resposta HTTP sempre que o cliente solicitar.
setPrice Timer 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 um protótipo, o estagiário simulou o feed de ações com uma função de temporizador, que é atualizada a cada minuto. O site do cliente solicita todas as ações do ponto de extremidade da API /api/getStocks a cada cinco segundos, na tentativa de exibir os dados quase em tempo real. Essa solicitação de cliente não é eficiente. Em vez de efetuar pull dos dados do servidor, é mais eficiente para o servidor efetuar push das novas informações de ações.

Tarefas a serem feitas

Neste módulo, você vai:

  • Executar o protótipo: Exibir o aplicativo cliente, que sonda o servidor para todas as ações em um intervalo regular
  • Aprimorar o aplicativo: Implementar um aplicativo do Azure Functions sem servidor para transmitir alterações para os clientes conectados usando o Serviço do SignalR para atualizações quase em tempo real.
  • Atualizar o aplicativo Web JavaScript cliente para se conectar ao SignalR, a fim de obter e exibir as mensagens.