10. Webbservrar

Nätverkskapitlen fick kameran på nätverket och gav den sockets att kommunicera genom (Nätverk). Vad nu? De flesta kameraapplikationer kokar ner till två saker – exponera vad kameran ser för världen och reagera på vad andra saker på nätverket säger. HTTP är hur den konversationen sker, och det fungerar i båda riktningarna:

  • Som server svarar kameran på begäranden från telefoner, webbläsare och andra enheter på nätverket. Ramverket microdot är kamerans server.

  • Som klient når kameran ut till molntjänster för att ladda upp, hämta eller koordinera. Modulen requests är kamerans klient.

Under de kommande 14 kapitlen bygger vi en körande kameraapplikation som tränar båda.

En rörelseutlöst bakgårdskamera sitter på en stolpe på gården, ser vad som pågår och berättar för ägaren om allt intressant. Vi låter kameran växa från en ”jag lever”-server med en enda rutt till något levererbart: liveförhandsvisning till ägarens telefon, en instrumentpanel med ett tröskelvärdesreglage och en händelselogg, push-notiser när rörelse utlöses, inloggning, HTTPS och ett molnarkiv över varje utlöst bildruta.

Varje kapitel lägger till en funktion. Kodexempel förutsätter att de tidigare kapitlen är på plats – vi klistrar inte in hela skriptet på nytt varje gång.

Telefonen eller den bärbara datorn kommunicerar med kameran över HTTPS för instrumentpanelen, SSE-händelser och WebSocket-kommandon; kameran kommunicerar ut till ett molnarkiv över HTTPS POST.