2

我一直在尝试连接 Freeboard 以可视化来自 OCB 的上下文信息,但是遇到了阻止我从那里接收任何数据的困难。我的想法是连接Freeboard到OCB有问题,因为在OCB的订阅列表中没有任何新条目,而Freeboard中的数据源显示它从未更新过。

我在 Freeboard 中配置数据源的方式。

OCB 作为 docker 容器打开。Freeboards 在 docker 主机中运行。

我尝试将 ip 设置为我从 docker 中提取的 ip:

    sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' orion1

它给了我 172.17.0.3,但它也不起作用。我想它不应该有,因为我可以通过 localhost:1026 与 OCB 通信,只要我通过 cUrl 或 Insomnia 进行通信。我可以推送新实体、更新等。

在此处输入图像描述

没有工作的积累服务器(链接在这里)现在可以了。但问题是,我自己添加订阅,不能在 localhost(环回接口)上运行 acc 服务器,而是在其他可用接口上运行,然后将该接口的 ip 添加到我发送到 OCB 的订阅有效负载中。也许某处与 Freeboard 存在冲突。

4

1 回答 1

0

这里的问题与缺乏 CORS 支持有关。最简单的解决方案是在启动 Orion Context Broker 时启用 CORS 功能,如此处所述

我对这个主题进行了相当多的(实际上是不必要的)研究,并为这个github 帖子中描述的问题提出了过度的解决方案。有一种代理服务器方法可以解决这个问题。我想提议向 Orion Context Broker 添加 CORS 支持,当发现它已经实现时我感到很惊讶。

有这样的帖子这个这个解决这个案子很有帮助。

但是,我有两个请求。我想@fgalan 现在是一个关于 OCB 和外围软件的后端和文档的人。

  1. 是否可以更加强调 CORS 和 ACCESS-CONTROL-ALLOW-ORIGIN 解决方案?其背后的原因是,它提供了 OCB 与在 Internet 浏览器中运行的任何前端应用程序或站点(即 Freeboard)之间的无缝连接。它不应该隐藏得如此隐蔽,以至于我在寻找其他东西时偶然发现了我的问题的解决方案。我想把它放在一些我不知道其他可见地方的演练文档中。问题是我花了两周的时间试图解决它,毕竟我选择了过度且不必要的解决方案,而简单易用的解决方案就在我的眼皮底下。好消息是我在堆栈和 git 上有很好的连接,所以它得到了解决。可能有些人在出现任何失误后放弃了 Freeboard。而且很可惜,因为目前没有比 Freeboard 更好的可视化开源软件了。问题不仅在于 Freeboard,正如我所说,它涉及更多的前端应用程序和解决方案。当我们采用 FIWARE 的思维方式时,这些事情应该以不同的方式解决。

  2. Freeboard 的 FIWARE 数据源插件目前一文不值。正如@fgalan 在评论中指出的那样,它是为 v1 版本的 Orion Context Broker API 开发的,尚未更新。因此,它比想象的要复杂得多。正如 OCB 的文档所指出的那样,v1 方法并不是真正的 RESTfull。在对 Freeboard 的 OCB 插件进行简短的代码审查后,我可以说这不值得使用。据我了解,它应该仍然可以工作,因为 OCB 允许进行 v1 请求(但它对我无论如何都不起作用),这些请求已被弃用。我认为应该出现关于主题的新帖子(不确定我应该联系谁),因为有点误导。使用已弃用的软件并传播与 OCB 交互的不良习惯有什么意义?

    在我看来,解决方案很简单。只需在 Freeboard 中使用 JSON 数据源。我理解 2015 年为 Freeboard 创建单个数据源插件的动机,当时没有 RESTfull v2 版本的 OCB API,但现在有一个,为什么不使用它呢?从那以后,我就摆脱了使用 CORS 的困难,在我看来它工作得很好。正如我之前所说,Freeboard 提供了巨大的机会,同时易于设置和维护。不应该这么轻易放弃。

    通过在 Freeboard 中对 JSON 有效负载使用 GET 请求,现在我们可以完全访问来自 OCB 的上下文查询。只要我们使用 Freeboard,它就不需要任何 POST 方法(通过查询数据来可视化)。投放

              ?options=keyValues
    

    到请求的 URL,我们已经获得了一种非常智能且紧凑的方式来可视化来自 Broker 的数据。

    这就是我认为应该解决的方式。我认为 2015 年有关此主题的最新更新还不够,特别是如果开发了更好的方法来访问 OCB 的上下文数据。

于 2018-08-07T19:42:51.663 回答