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 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.