Introducción
Como ingeniero, con Tailwind Traders ha sabido que su empresa planea lanzar un nuevo sitio web que proporcione información sobre los precios de las acciones a los clientes. No hace mucho, un becario ha creado un prototipo de sitio web para la nueva aplicación y, ahora, el responsable de arquitectura le ha pedido a usted que se incorpore al proyecto y mejore la solución. Su objetivo es actualizar la aplicación a fin de implementar las actualizaciones automáticas de la información de precio de las acciones, pero, a la vez, asegurarse de que la comunicación entre el cliente y el servidor solo se produzca cuando cambien los datos en el servidor.
Arquitectura de prototipo
El prototipo de servidor tiene 2 funciones:
Nombre de la función | Tipo de desencadenador | Descripción |
---|---|---|
getStocks | Azure Cosmos DB | El servidor es responsable de leer todos los datos de la tabla de acciones de la base de datos y devolver esos datos en una respuesta HTTP siempre que el cliente lo solicite. |
setPrice | Temporizador | Una función para cambiar los datos de la base de datos se ejecuta con un desencadenador de temporizador. Esto simula la recepción de cambios de un sistema back-end. |
Como prototipo, el interno simulaba el suministro de acciones con una función de temporizador que se actualiza cada minuto. El sitio web cliente solicita todas las acciones del punto de conexión de la API /api/getStocks
cada 5 segundos en un intento de mostrar datos casi en tiempo real. Esta solicitud de cliente no es eficaz. En lugar de extraer los datos del servidor, es más eficaz que el servidor inserte información nueva sobre las acciones.
Tareas que se van a realizar
En este módulo, aprenderá a:
- Ejecutar el prototipo: Ver la aplicación cliente, que explora el servidor en busca de todas las acciones en un intervalo regular
- Mejorar la aplicación: Implemente una aplicación de Azure Functions sin servidor para difundir los cambios en los clientes conectados mediante SignalR Service a actualizaciones casi en tiempo real.
- Actualice la aplicación web de JavaScript del cliente para conectarse a SignalR para obtener y mostrar los mensajes.