10. Webserver

Die Netzwerk-Kapitel haben die Kamera ins Netzwerk gebracht und ihr Sockets zur Kommunikation gegeben (Netzwerke). Was nun? Die meisten Kameraanwendungen laufen auf zwei Dinge hinaus – der Welt zeigen, was die Kamera sieht und auf das reagieren, was andere Dinge im Netzwerk sagen. HTTP ist die Art, wie diese Konversation stattfindet, und es funktioniert in beide Richtungen:

  • Als Server beantwortet die Kamera Anfragen von Telefonen, Browsern und anderen Geräten im Netzwerk. Das Framework microdot ist der Server der Kamera.

  • Als Client wendet sich die Kamera an Cloud-Dienste, um hochzuladen, abzurufen oder zu koordinieren. Das Modul requests ist der Client der Kamera.

In den nächsten 14 Kapiteln bauen wir eine laufende Kameraanwendung, die beides nutzt.

Eine Bewegungsauslöser-Kamera für den Hinterhof sitzt auf einem Pfosten im Garten, sieht, was vor sich geht, und teilt dem Besitzer alles Interessante mit. Wir lassen die Kamera von einem „Ich lebe“-Server mit einer einzigen Route zu etwas Auslieferbarem heranwachsen: Live-Vorschau auf das Telefon des Besitzers, ein Dashboard mit Schwellenwert-Schieberegler und Ereignisprotokoll, Push-Benachrichtigungen bei ausgelöster Bewegung, Login, HTTPS und ein Cloud-Archiv jedes ausgelösten Einzelbilds.

Jedes Kapitel fügt ein Feature hinzu. Die Codebeispiele setzen voraus, dass die früheren Kapitel umgesetzt sind – wir fügen nicht jedes Mal das gesamte Skript erneut ein.

Das Telefon oder Laptop kommuniziert mit der Kamera über HTTPS für das Dashboard, SSE-Ereignisse und WebSocket-Befehle; die Kamera kommuniziert nach außen mit einem Cloud-Archiv über HTTPS-POST.