使用 Fiware 上下文代理异步读取上下文信息

Read Context Information Asynchronously with Fiware Context Broker

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

如何在不刷新页面的情况下更新页面上的措施? 有什么方法可以通过轮询或 websockets 使用 curl get 请求吗? 或者是否有 Context Broker 提供的操作来异步更新我的传感器发送的新测量值?

可悲的是,我认为Fiware Community 中没有这样的东西。但是我认为您可以从这里开始毫不费力地实现该行为:

Orion 和订阅机制

Orion Context Broker 使用订阅机制,在官方文档的 this 部分中有很好的解释。 从那开始,您可以为您的应用程序订阅设备上下文的特定更改,然后在每次设备发送新测量值时接收新数据。

然而,这不足以在您的 Web 应用程序中从客户端接收通知。为此,您必须订阅您的应用程序后端,然后实施异步机制以使用例如 Websockets 从您的后端通知客户端,正如您正确所说的那样。

NGSI 代理

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

如果不能提供足够的帮助,我们深表歉意。

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

Orion 很久以前就实现了 websocket 支持(见此 ),但它是一个实验性的 proof-of-concept,最后还没有进入主存储库分支(至少到当下 ;)

您可以看看是否适合您的问题。但是,正如@kzangeli 在他的回答中指出的那样,Ajax-based 替代方案似乎先验地更可行。