10. Servidores Web

Os capítulos de rede ligaram a câmara à rede e dotaram-na de sockets para comunicar (Redes). E agora? A maioria das aplicações de câmara resume-se a duas coisas – expor o que a câmara vê ao mundo e reagir ao que outros dispositivos na rede dizem. O HTTP é como essa conversa acontece, e funciona em ambas as direções:

  • Como servidor, a câmara responde a pedidos de telemóveis, browsers e outros dispositivos na rede. A framework microdot é o servidor da câmara.

  • Como cliente, a câmara contacta serviços na nuvem para carregar, obter ou coordenar dados. O módulo requests é o cliente da câmara.

Ao longo dos próximos 14 capítulos, construiremos uma aplicação de câmara funcional que exercita ambos.

Uma câmara de deteção de movimento no quintal colocada num poste, que vê o que se passa e informa o proprietário sobre qualquer coisa interessante. Faremos a câmara evoluir de um servidor de uma única rota «estou ativo» para algo pronto a enviar: pré-visualização em direto no telemóvel do proprietário, um dashboard com um controlo deslizante de limiar e um registo de eventos, notificações push quando o movimento é detetado, início de sessão, HTTPS e um arquivo na nuvem de cada fotograma despoletado.

Cada capítulo acrescenta uma funcionalidade. Os exemplos de código assumem que os capítulos anteriores estão em vigor – não colamos o script completo de cada vez.

The phone or laptop talks to the cam over HTTPS for the dashboard, SSE events, and WebSocket commands; the cam talks out to a cloud archive over HTTPS POST.