Python Flask App - инструмент для отправки / отправки данных датчиков в реальном времени клиентам - PullRequest
0 голосов
/ 16 октября 2018

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

У меня есть Raspberry Pi, который в реальном времени регистрирует температуру и влажность.Сейчас я пишу приложение-колбу для передачи этих данных клиентам, которые (в зависимости от прав) смогут непрерывно наблюдать без обновления панели инструментов / страницы.

Что будет лучшим вариантом для создания эффективной системы, учитывая, что в будущем будет несколько датчиков?Варианты, которые я нахожу:

  • Ajax
  • WebSocket
  • Каркас, например, боке или тире
  • MQTT

Пожалуйстадай мне свое мнение.

1 Ответ

0 голосов
/ 17 октября 2018

Хороший выбор, если вы хотите написать свой бэкэнд с использованием Python:

Сервер: Flask с Sokcet.IO + InfluxDB для хранения данных в реальном времени

Внешний интерфейс: Некоторые JS-фреймворки или чистыеJs + websocket


UPD (это сообщение слишком длинное, чтобы оставлять его в комментариях):

https://www.smashingmagazine.com/2018/02/sse-websockets-data-flow-http2/

Дело в том,что я не говорю о том, что websocket является правильным решением для всех возможных случаев / проблем и должен использоваться везде.Очевидно, это зависит от ваших потребностей и архитектуры вашего проекта.Я думаю, что эта статья поможет вам сделать выбор: если вашей архитектуре приложения требуется полнодуплексное соединение браузер-сервер - вы можете использовать для этого websocket, и это будет работать для вас, но если ваш веб-интерфейс требует только направление односторонней отправки данных - с сервера на браузер - вы можете использовать SSE, как говорится в статье о SSE: «наш основной поток данных идет от сервера к клиенту и в гораздо меньшем количестве случаев отклиент на сервер ".Подводя итог, вам нужно подумать об архитектуре вашего приложения и о том, как данные должны передаваться между браузером и сервером, чтобы выбрать правильную технологию.Кроме того, если вы не хотите использовать ни websocket, ни SSE - вы можете использовать ajax для извлечения данных с сервера, и это также будет работать для вас.

...