Introdução
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.