10. Servere web

Capitolele despre rețelistică au pus camera în rețea și i-au oferit socketuri prin care să comunice (Rețelistică). Și acum? Majoritatea aplicațiilor de cameră se reduc la două lucruri – expune lumii ceea ce vede camera și reacționează la ceea ce spun celelalte lucruri din rețea. HTTP este modul în care are loc această conversație și funcționează în ambele direcții:

  • Ca server, camera răspunde la cererile de la telefoane, browsere și alte dispozitive din rețea. Frameworkul microdot este serverul camerei.

  • Ca client, camera contactează servicii cloud pentru a încărca, a prelua sau a coordona. Modulul requests este clientul camerei.

De-a lungul următoarelor 14 capitole vom construi o singură aplicație de cameră funcțională care exersează ambele.

O cameră de curte cu declanșare la mișcare stă pe un stâlp în curte, vede ce se întâmplă și îi spune proprietarului despre orice este interesant. Vom face camera să crească de la un server cu o singură rută de tip „sunt în viață” într-un produs livrabil: previzualizare live pe telefonul proprietarului, un dashboard cu un slider de prag și un jurnal de evenimente, notificări push când se declanșează mișcarea, autentificare, HTTPS și o arhivă cloud a fiecărui cadru declanșat.

Fiecare capitol adaugă o singură funcționalitate. Mostrele de cod presupun că capitolele anterioare sunt la locul lor – nu re-lipim întregul script de fiecare dată.

Telefonul sau laptopul comunică cu camera prin HTTPS pentru dashboard, evenimente SSE și comenzi WebSocket; camera comunică spre exterior cu o arhivă cloud prin HTTPS POST.