×Закрыть

Python + webserver — посоветуйте, что использовать

Предисловие:

Есть устаревшее приложение, которое участвует в процессе производства устройств на микроконтроллерах. Ним обновляют ПО, проверяю работоспособность, и много чего другого делают. И есть много кода на Python, которое делает тоже самое, но еще и поддерживает новые протоколы устройств, которые разрабатываются. Т.е. параллельно с разработкой устройства пишутся python-скрипты для работы с ним же, как минимум, для тестирования устройств пока их поддержку не добавили в устаревшее приложение. В общем, появилась идея эти же скрипты использовать в каком-то приложении.

Задача:

Как я вижу, нужен какой-то вэбсервер для питона, который будет «дергать» нужные скрипты и взаимодействовать со страничкой через websocket.

Пока попробовал написать приложение используя питоновский HTTPServer и библиотеку websockets, тестовый пример заработал, но не уверен, что это правильный путь. Можно еще взять Flask, но одновременных клиентов будет до трех, не знаю стоит ли оно того? Ну и в пользу идеи с вэбом — очень желательно иметь возможность подключиться телефоном/планшетом.

Само приложение будет запускаться на компьютере к которому подключен адаптер CAN шины и через него будет взаимодействие с устройствами.

Что посоветуете?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
и библиотеку websockets

Господи, ну зачем вам websockets? Вы же не асинхронные чаты пишите и у вас нет большого потока посетителей.

4-5 раз в секунду обновлять значение на экране
одновременных клиентов будет до трех

для этого хватит Flask + AJAX

Скріпт в студію, дайош код на доу!

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

вебсокеты предложил парень, который будет фронтом заниматься. На странице также нужно будет отображать данные — значение некоторых переменных из микроконтроллеров. Они могут меняться очень быстро, нужно хотя бы 4-5 раз в секунду обновлять значение на экране.
Я вообще от веба далек, пишу на С и немного Python знаю, по-этому все идеи приветствуются.

нужно хотя бы 4-5 раз в секунду обновлять значение на экране.

А какой смысл? Или вы способны установить их точность с такой скоростью?

не очень понял вопрос про точность.
Вы имеете ввиду необходимость или техническую возможность так часто обновлять данные на странице?
Саму идею с вебсокетами я подсмотрел в оборудовании партнеров, у них на страничке данные обновляются раз 10 в секунду, цифры «пляшут» очень быстро и графики строятся очень подробно. Но у них для этого ставится отдельный отдельный компьютер с Linux RT.

Бери tornado или nodejs для сокет-сервера. Связывай свою C логику с сокет сервером через шину (redis pub/sub, beanstalkd, rabbitmq) и всё.
Будет до 100 строк кода — создание websocket’а, подписка на события из очереди и отправка их в сокеты.

По питоньим фреймворкам не специалист, просто лет 10 на слуху tornado / twisted. Пример websocket-сервера на торнадо тоже выглядит просто, не говорю что на flask’е или aiohttp сложнее.

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

выбранный автором вебсокетс практически не отличается от торнадо/твистед, во всем остальном поддерживаю

из описания понятно зачем нужен вебсервер
вы можете встроить интерпретатор прямо в приложение и выполнять скрипты
если конечно написано грамотно и код для работы с устройством не переремешан с кодом для веба

Подписаться на комментарии