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

Главы о работе с сетью подключили камеру к сети и дали ей сокеты для общения (Сети). Что теперь? Большинство приложений для камер сводятся к двум вещам – показать миру то, что видит камера и реагировать на то, что говорят другие устройства в сети. HTTP – это то, как происходит этот разговор, и он работает в обоих направлениях:

  • В роли сервера камера отвечает на запросы от телефонов, браузеров и других устройств в сети. Фреймворк microdot – это сервер камеры.

  • В роли клиента камера обращается к облачным сервисам, чтобы загружать, получать или координировать данные. Модуль requests – это клиент камеры.

На протяжении следующих 14 глав мы построим одно работающее приложение для камеры, которое задействует обе роли.

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

Каждая глава добавляет одну функцию. Примеры кода предполагают, что предыдущие главы уже на месте – мы не вставляем заново весь скрипт каждый раз.

Телефон или ноутбук общается с камерой по HTTPS для панели управления, событий SSE и команд WebSocket; камера общается с облачным архивом через HTTPS POST.