【问题标题】:No connection between Freeboard's data source for Orion and Context BrokerFreeboard 的 Orion 数据源和 Context Broker 之间没有连接
【发布时间】:2018-06-25 11:33:27
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我还有其他地方可以寻找答案吗?我想这是个小问题,但会破坏使用此应用程序的体验。
  • Freeboard-Orion 集成已过时。我是很久以前开发的,可能还没有更新。也许您遇到的问题与此有关。
  • 最近是否有任何与提供 Freeboard 可能性的服务的联系?这很诱人,因为它提供了作为上下文使用者的丰富经验,或者只是在开发上下文系统时进行调试和检查。或者也许还有其他一些平台提供了 Fiware 社区中没有提到的类似的东西?

标签: docker fiware-orion freeboard


【解决方案1】:

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

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

thisthisthis之类的帖子对破案很有帮助。

但是,我有两个请求。我想@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 请求(但它对我无论如何都不起作用),这些请求已被弃用。我认为应该出现关于主题的新帖子(不确定我应该联系谁),因为this 有点误导。使用已弃用的软件并传播与 OCB 交互的不良习惯有什么意义?

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

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

              ?options=keyValues
    

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    相关资源
    最近更新 更多