Совет - обработка данных в реальном времени от клиента к серверу - PullRequest
0 голосов
/ 20 ноября 2011

Я ищу совет / руководство по достижению следующего:

У меня есть схема, смонтированная и подключенная к Arduino, и я могу легко получить данные из нее, используя Python и модуль pySerial.,Это позволяет мне определять значение аналогового входа с течением времени.

В данный момент я сохраняю эти данные в файле с отметкой времени и соответствующим значением, и я хотел бы услышать мнения и мысли окак я могу «поделиться» этими данными с веб-сервером и «воспроизвести» их в режиме реального времени.

Можно ли «потокировать» значения в файл дампа и одновременно получать данные из него через AJAXзапросить или я должен посмотреть на управляемые событиями веб-серверы, такие как 'Tornado', 'Twisted' ...

Я немного растерялся здесь.Просто для справки, я доволен PHP и JavaScript для окончательного вывода, у меня просто нет понятия о том, как постоянно «передавать» нужные мне данные.

Заранее спасибо.

1 Ответ

1 голос
/ 20 ноября 2011

Если вы не планируете слишком много обновлять устройство Ardunio, то было бы целесообразно, чтобы компонент Python продолжал собирать данные через последовательный порт и публиковать их так, чтобы сервис мог легко их использовать. может распространять информацию более эффективным и, вероятно, гибким способом.

, например

  1. чтение данных с последовательного порта и публикация сообщений в очереди сообщений. Затем очередь сообщений может быть прочитана любым другим компонентом, а затем данные могут быть переданы другим приложениям / клиентам.
  2. Выполните веб-вызов на сервер, который может обрабатывать каждое обновление и распространять его среди других приложений / клиентов.
  3. Вы можете использовать что-то вроде Pusher (на кого я работаю) и сделать вызов REST API для доставки каждого сообщения любым подключенным клиентам. Хотя это хороший способ распространения ваших данных, вы будете публиковать их, даже если ни один клиент их не слушает, поэтому я думаю, что лучше всего сначала доставить данные в такой компонент, как веб-сервер.

Предполагая, что вы выберете 1 или 2, вы можете использовать веб-решение реального времени для распространения данных среди любого количества клиентов. Вы можете использовать здесь Pusher или использовать решение для самостоятельного размещения.

Итак, поток данных, как я вижу, будет:

Ardunio -> небольшое приложение Python -> очередь (или HTTP-запрос к веб-серверу) -> веб-технология реального времени -> множество клиентов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...