与Fiware Context Broer异步读取上下文信息

时间:2018-02-23 16:53:47

标签: php curl websocket fiware fiware-orion

我正在使用Context Broker来读取传感器的测量值。 到目前为止,我必须刷新我的应用程序的网页才能阅读最新的措施。

如何更新我的页面上的度量而不刷新它? 有没有办法使用轮询获取请求与轮询或websockets? 或者是否有Context Broker提供的操作,以便异步更新传感器发送的新度量?

3 个答案:

答案 0 :(得分:2)

可悲的是,我认为Fiware社区并没有这样的事情。但是我认为你可以在没有痛苦的情况下实现这种行为:

Orion and Suscription Mechanisim

Orion Context Broker使用的订阅机制在官方文档的this部分中有详细说明。 从此开始,您可以将应用程序订阅到设备上下文中的特定更改,然后在每次设备发送新度量时接收新数据。

但是,这还不足以从客户端接收Web应用程序中的通知。为此,您必须暂停您的应用程序后端,然后实现异步机制,以正确的方式使用例如 Websockets 从您的后端通知客户端。

NGSI代理

另一方面,来自FIWARE社区的名为NGSI Proxy的this组件为您实现了类似的逻辑,可能对您有所帮助。我承认我过去仅使用Wirecloud Widgets间接使用它,我不确定它是否是您问题的答案。

对不起,如果它没有足够的帮助。

答案 1 :(得分:0)

实现你要求的东西似乎很容易......
您如何从Orion获取数据? 或许GET /v2/entities。 只需在由setInterval触发的javascript函数(一点Ajax)中编写对Orion的调用,然后更改网页字段的值。正确?

答案 2 :(得分:0)

Orion实施了websocket支持的时间(请参阅此question),但这是一个实验性的概念验证,最终还没有登陆主存储库分支(至少到目前为止) ;)

您可以查看一下,看看它是否适合您的问题。然而,正如@kzangeli在他的文章中指出的那样,基于Ajax的替代方案似乎是先验的更可行。