Асинхронное чтение контекстной информации с помощью Fiware Context Broker

Я использую Context Broker, чтобы считывать измерения с моих датчиков.
До сих пор мне приходилось обновлять веб-страницу моего приложения, чтобы прочитать последние меры.

Как я могу обновить показатели на моей странице, не обновляя ее?
Есть ли способ использовать запрос получения curl с опросом или веб-сокетами?
Или есть операция, которую обеспечивает Context Broker для асинхронного обновления новых показателей, отправляемых моим датчиком?

1

Решение

Кажется, довольно легко реализовать то, что вы просите …
Как вы получаете данные от Ориона в первую очередь?
С GET /v2/entities возможно.
Просто запрограммируйте вызов Orion в функции JavaScript (немного Ajax), запускаемой setInterval, а затем измените значения ваших полей на вашей веб-странице. Правильно?

0

Другие решения

К сожалению, я думаю, что в сообществе Fiware такого нет. Однако я думаю, что вы могли бы реализовать это поведение без боли, начиная с этого:

Орион и Механизм Сискинг

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

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

NGSI Proxy

В другой руке есть этот компонент из сообщества FIWARE, называемый NGSI Proxy, который реализует аналогичную логику для вас и может быть вам полезен. Признаюсь, что в прошлом я использовал его только косвенно с помощью виджетов Wirecloud, и я не уверен, что это решение вашей проблемы.

Извините, если это не может быть достаточно помочь.

2

Orion реализовал поддержку websocket некоторое время назад (см. Это вопрос) но это было как экспериментальное подтверждение концепции, которое в конце концов не попало в ветку главного хранилища (по крайней мере, до настоящего момента;)

Вы могли бы взглянуть, чтобы увидеть, подходит ли это вашей проблеме. Однако альтернатива на основе Ajax, как указывает @kzangeli в своих ответах, кажется априори более выполнимой.

0
По вопросам рекламы [email protected]