2015-02-23 2 views
0

Я хочу подключить кучу датчиков погоды к малиновому PI. Запись демона, который считывает датчики и записывает данные в базу данных, будет легкой частью, так как я программист систем. Я также хочу простой интерфейс для кросс-платформенного интерфейса для этого устройства, поэтому я хотел бы настроить мой малиновый Pi в качестве точки доступа WIFI, с которой люди могут подключиться, а затем просто ввести URL-адрес, такой как «weather.local», в браузер, который будет принимать их на веб-страницу, где данные по датчикам погоды постоянно обновляются. То есть Я хочу, чтобы демон датчика «нажал» обновления на веб-страницу.Нажатие данных с сервера на веб-элементы пользовательского интерфейса

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

  1. Вспышка, которая отсутствует, потому что я хочу, чтобы это работало на мобильных браузерах.
  2. Использование Java-скрипта и ведение HTTP-запросов к веб-службе.
  3. HTML5 socket.io, который предположительно совпадает с WebSocket.

Если у меня есть опция (2), даже если это какой-то опрос, мне придется включить в свой сенсорный демо-код какую-то форму HTTP-сервера, и у меня есть четкое представление о том, как это кодировать. Мой вопрос, однако, относится к сокету HTML5 IO. Могу ли я использовать это для прямого подключения к двоичному сокету TCP/IP или мне нужна библиотека WebSocket на стороне сервера? Также как широко используется HTML5 socket.io/WebSocket для мобильных браузеров?

+0

Возможно, вы захотите найти решение, которое будет учитывать сложность выбора оптимального транспорта для каждого клиента. Взгляните на демонстрации на www.lightstreamer.com (полное раскрытие: я являюсь соучредителем Lightstreamer). –

ответ

1

WebSocket всегда начинается с upgrade handshake через HTTP, поэтому вам необходимо иметь базовые возможности HTTP. Это достаточно просто, что вы можете вручную его кодировать.

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

Примечание о варианте 2: браузеры имеют native implementation of it - это означает, что вам не нужно столько JavaScript на клиенте. Вы просто создаете объект EventSource и слушаете его события.

+0

Спасибо, чувак, это действительно помогло мне. Висячие HTTP-запросы казались немного неуклюжими, и поскольку я привык к сокетам Беркли, я пошел с WebSockets, и это стало более элегантным. Я применил приложение с доказательством концепции с C++-процессом, использующим libsockets на конце сервера и JavaScript + WebSockets для веб-интерфейса. Теперь я могу обновить объект HTML

Смежные вопросы