10. Веб-сервери

Розділи про мережі під’єднали камеру до мережі та надали їй сокети для спілкування (Мережа). Що далі? Більшість застосунків із камерою зводяться до двох речей — показати світові те, що бачить камера і реагувати на те, що говорять інші пристрої в мережі. HTTP — це спосіб, яким відбувається це спілкування, і він працює в обох напрямках:

  • Як сервер, камера відповідає на запити з телефонів, браузерів та інших пристроїв у мережі. Фреймворк microdot є сервером камери.

  • Як клієнт, камера звертається до хмарних сервісів для завантаження, отримання або координації даних. Модуль requests є клієнтом камери.

У наступних 14 розділах ми побудуємо один робочий застосунок камери, який задіює обидва варіанти.

Камера для фіксації руху у дворі розміщується на стовпі у дворі, бачить, що відбувається, і повідомляє власника про все цікаве. Ми розвиватимемо камеру від однорутового сервера «я живий» до готового продукту: live-перегляд на телефоні власника, панель керування зі слайдером порогу та журналом подій, push-сповіщення при виявленні руху, авторизація, HTTPS та хмарний архів кожного кадру, що спрацював.

Кожен розділ додає одну функцію. Приклади коду припускають, що попередні розділи вже реалізовані — ми не вставляємо весь скрипт заново щоразу.

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.