10. Servidores web

Los capítulos de redes pusieron la cámara en la red y le dieron sockets a través de los cuales comunicarse (Redes). ¿Y ahora qué? La mayoría de las aplicaciones de cámara se reducen a dos cosas – exponer lo que la cámara ve al mundo y reaccionar a lo que dicen otras cosas en la red. HTTP es la forma en que ocurre esa conversación, y funciona en ambas direcciones:

  • Como servidor, la cámara responde a peticiones de teléfonos, navegadores y otros dispositivos de la red. El framework microdot es el servidor de la cámara.

  • Como cliente, la cámara se conecta a servicios en la nube para subir, obtener o coordinar. El módulo requests es el cliente de la cámara.

A lo largo de los siguientes 14 capítulos construiremos una sola aplicación de cámara en funcionamiento que ejercite ambos roles.

Una cámara de patio con disparo por movimiento se sitúa en un poste en el jardín, ve lo que ocurre y avisa al propietario de cualquier cosa interesante. Haremos crecer la cámara desde un servidor de una sola ruta de tipo «estoy vivo» hasta algo entregable: vista previa en vivo en el teléfono del propietario, un panel con un control deslizante de umbral y un registro de eventos, notificaciones push cuando se dispara el movimiento, inicio de sesión, HTTPS y un archivo en la nube de cada fotograma disparado.

Cada capítulo añade una sola característica. Los ejemplos de código asumen que los capítulos anteriores están en su sitio – no volvemos a pegar todo el script cada vez.

El teléfono o el portátil se comunican con la cámara por HTTPS para el panel, los eventos SSE y los comandos por WebSocket; la cámara se comunica hacia fuera con un archivo en la nube mediante HTTPS POST.