Orion 的 Freeboard 数据源与 Context Broker 之间没有连接

2024-03-30

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

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

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

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

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

尚未运行的累积服务器(链接在这里 https://stackoverflow.com/questions/49458811/accumulation-server-no-action)现在还可以。但问题是,我自己添加订阅,无法在本地主机(环回接口)上运行 acc 服务器,而是在其他可用接口上运行,然后将该接口的 ip 添加到我发送给 OCB 的订阅负载中。也许某处与 Freeboard 发生冲突。


这里的问题与缺乏 CORS 支持有关。解决此问题的简单解决方案是在启动 Orion Context Broker 时启用 CORS 功能,如下所述here https://fiware-orion.readthedocs.io/en/master/user/cors/index.html.

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

有类似的帖子this https://github.com/Freeboard/freeboard/issues/85, and this https://github.com/Freeboard/freeboard/issues/208这对破案很有帮助。

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

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

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

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

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

              ?options=keyValues
    

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

    我认为这就是解决问题的方式。在我看来,2015 年关于这个主题的最后一次更新还不够,特别是如果开发出更好的方法来访问 OCB 的上下文数据的话。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Orion 的 Freeboard 数据源与 Context Broker 之间没有连接 的相关文章

随机推荐

  • 嵌套视图中的拥抱和压缩阻力

    我试图了解拥抱和抗压阻力是如何真正发挥作用的 我有这样的场景 我需要左侧两个标签 绿色容器内 和右侧两个标签 蓝色容器内 如图所示 我希望绿色容器能够容纳内容 Android 的wrap content 和蓝色容器来填充剩余空间 Andro
  • PostgreSQL 中的跨数据库查询[重复]

    这个问题在这里已经有答案了 我正在尝试在 Postgres 中构建查询 我的背景是 SQL Server 因此我遇到了一些语法挑战 我的查询需要访问两个独立服务器上的两个独立数据库 我需要在数据集之间进行连接 本质上 我在 db1 中有一个
  • pySerial 与 python 2.7 和 3.4 的差异

    我正在开发一个项目 需要通过串口将一些数字从 Windows 10 中的 python 发送到 arduino uno 作为一个简单的测试 我只想通过发送 2 来打开 LED 并通过从命令提示符发送 4 来关闭 LED 尽管我希望最终能够将
  • ScrollView 只能承载一个直接子异常

    我想将图像添加到滚动视图 我尝试使用以下代码 ScrollView sv ScrollView findViewById R id scrollView2 ImageView iv new ImageView this iv setImag
  • Android Studio - Flutter 插件未安装;这增加了 Flutter 特定的功能

    考虑到我已经遵循了所有这些步骤https flutter dev docs get started install linux https flutter dev docs get started install linux在我的 Ubun
  • 使用空格键启动和停止 Python 海龟

    我正在尝试编写一个程序 通过按空格键来启动和停止乌龟 我得到了启动乌龟移动的代码 但当我再次按下它时它并没有停止 看来只是提高速度而已 这是我的编码要求和我输入的代码 创建一个包含三个函数的乌龟程序来控制乌龟 创建一个名为 turnLeft
  • Twitter Bootstrap Carousel 的表达式引擎频道条目无法正常工作

    好的 我在通过 ExpressionEngine 的频道条目实现基本的 Twitter 引导轮播时遇到问题 我认为这与以下事实有关 您必须将第一个 li 标记指定为 活动 以便引导程序知道页面加载时显示哪个图像 但我的代码如下 div cl
  • Java的for循环有没有针对线程安全的优化?

    我有一段代码可以更改两个线程中的计数器 它不是线程安全的 因为我没有在代码中放置任何原子变量或锁 如果代码只运行一次 它会给出正确的结果 但我想运行它多次 所以我将代码放入 for 循环中 问题是只有第一个或前两个循环才会生成我期望的结果
  • Play 2.0 - 服务器重新启动后作为 Windows 服务启动

    我有游戏 作为 Windows 服务运行的应用程序 它是根据this http naoki sato name lab archives 263指导 问题是RUNNING PID当服务器重新启动时 应用程序根文件夹中的内容不会被删除 并且应
  • 为什么Java的hashCode不支持通用哈希?

    一些哈希表方案 例如布谷鸟哈希 http en wikipedia org wiki Cuckoo hashing or 动态完美哈希 http en wikipedia org wiki Dynamic perfect hashing 依
  • Scala 未绑定占位符参数

    我使用以下代码来满足我的需求 1 to 5 map i gt s x i Produces List x1 x2 x3 x4 x5 但我想使用占位符 根据字符串插值器文档 http docs scala lang org overviews
  • 如何将 IntPtr 转换为 int

    有时是窗把手int以及其他时间类型IntPtr int例子 DllImport user32 dll static extern uint GetWindowThreadProcessId int hWnd int ProcessId In
  • Eclipse 法语支持

    我需要在 eclipse 中输入一些法语字符 如何配置 eclipse 输入法语 我确实拥有默认 Eclipse 包装附带的所有字体 首选项 常规 工作区 文本文件编码 在我的配置中 我看到 Cp1252 可能是在我的操作系统当前设置之后设
  • 如何在 Docker 容器内运行 OpenCL + OpenGL?

    目的是在 Docker 容器内运行 OpenCL OpenGL 互操作 应用程序 但我还没有成功 Intro 我有配备 NVidia 显卡的笔记本电脑 因此我认为利用 NVidia Dockerfiles 1 2 将是一个很好的起点 以下
  • PCRE 中是否有“否定交替”或“否定字符串类”、“否定字符类”之类的东西?

    好吧 虽然模式 abc 匹配单个字符a b or c 模式 abc 匹配任何给定的字符isn t a b or c 现在如果我替换string for 特点在上面的声明中 如果我也将第一个模式更改为交替结构 那么它仍然适用 abc def
  • 在 jitpack 中获取“buildscript {} 块必须出现在任何插件 {} 块之前”错误

    我正在尝试使用 jitpack 发布我的 android 库 但得到buildscript blocks must appear before any plugins blocks error FAILURE Build failed wi
  • 我应该如何调整我的代码以实现 TBytes 和 TIdBytes 之间的兼容性?

    我遇到了与 中提到的相同的问题 Delphi XE4 Indy TBytes 和 TidBytes 之间的兼容性问题 https stackoverflow com questions 16339656 delphi xe4 indy co
  • 关闭连接后继续处理[重复]

    这个问题在这里已经有答案了 PHP 有没有办法关闭连接 本质上告诉浏览器没有更多数据 但继续处理 我想到的具体情况是 我想要提供缓存数据 那么如果缓存已过期 我仍然会提供缓存数据以获得快速响应 关闭连接 但继续处理以重新生成并缓存新数据数据
  • R-如何使用两种不同的调查设计进行双样本 t 检验

    我想对两个均值的相等性进行双样本 韦尔奇 t 检验 其中之一是使用简单随机抽样获得的 srsmean 另一个是使用调查包的调查权重计算得出的 mean weighted 我还进行了 t 检验mean weighted以及在调查设计中同时实施
  • Orion 的 Freeboard 数据源与 Context Broker 之间没有连接

    我一直在尝试连接 Freeboard 以可视化来自 OCB 的上下文信息 但是遇到了一些困难 导致我无法从那里接收任何数据 我的想法是 将Freeboard连接到OCB有问题 因为在OCB的订阅列表中没有任何新条目 并且Freeboard中