我一直在尝试连接Freeboard以可视化来自OCB的上下文信息,但是遇到了许多困难,使我无法从那里接收任何数据。我的想法是将Freeboard连接到OCB存在问题,因为在OCB的订阅列表中没有任何新条目,并且Freeboard中的数据源显示它从未更新。
OCB作为docker容器打开。干舷在Docker主机中运行。
我尝试通过以下方式将ip设置为从docker提取的ip:
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' orion1
它给了我172.17.0.3,但是在那上面也没有用。我想它应该没有,因为我可以通过localhost:1026与OCB通信,只要我通过cUrl或Insomnia进行通信即可。我可以推送新实体,更新等等。
尚未运行(link here)的累积服务器现在正常。但问题是,我自己添加了订阅,并且无法在localhost(回送接口)上运行acc服务器,而无法在其他可用接口上运行acc服务器,然后将该接口的ip添加到我发送给OCB的订阅有效负载中。也许某处与Freeboard有冲突。
答案 0 :(得分:0)
这里的问题与缺少CORS支持有关。一种简单的解决方案是仅在启动here中所述的Orion Context Broker时启用CORS功能。
我对此主题进行了相当多的研究(实际上是不必要的),并提出了解决该问题的解决方案,此github post中对此进行了描述。有一种代理服务器方法可以解决此问题。我想提出向Orion Context Broker添加CORS支持的建议,当发现它已经实施时,我感到非常惊讶。
有些this,this和this之类的帖子对解决此案非常有帮助。
但是,我有两个要求。我想,关于OCB和外围软件的后端和文档,@ fgalan现在是一个不错的选择。
可以进一步强调CORS和ACCESS-CONTROL-ALLOW-ORIGIN解决方案吗?其背后的原因是,它使OCB与Internet浏览器中运行的任何前端应用程序或站点(即Freeboard)之间实现了无缝连接。它不应该如此隐藏,以至于我在寻找其他东西时偶然遇到了问题的解决方案。我想把它放在我不知道其他可见位置的一些演练文档中。问题是,我花了两个星期的时间来解决它,毕竟,简单易用的解决方案就在我的眼皮底下。好消息是我在堆栈和git上都有良好的连接,因此已解决。滑倒Freeboard后,可能有人放弃了它。很遗憾,因为到目前为止,没有比Freeboard更好的用于可视化的开源软件了。而且问题不仅仅在于Freeboard,正如我所说的,它涉及更多的前端应用程序和解决方案。当我们采用FIWARE的思维方式时,应该以不同的方式解决这些问题。
用于Freeboard的FIWARE数据源插件目前不值一毛钱。正如@fgalan在评论中指出的那样,它是为Orion Context Broker API的v1版本开发的,尚未更新。因此,它比想象的要复杂得多。正如OCB的文档所指出的那样,v1方法并不是真正的RESTfull。在对Freeboard的OCB插件进行了简短的代码审查之后,我可以说这不值得使用。据我了解,它应该仍然有效,因为OCB允许执行v1请求(但无论如何对我来说都不起作用),所以不赞成使用这些请求。我认为应该出现有关该主题的新帖子(不确定应该与谁联系),因为this有点误导。使用不推荐使用的软件并散布与OCB交互的不良习惯有什么意义?
在我看来,解决方案很简单。只需在Freeboard中使用JSON数据源。我了解在2015年没有RESTfull v2版本的OCB API的情况下为Freeboard创建单个数据源插件的动机,但是现在有了一个,那么为什么不使用它呢?从那时起,我就摆脱了CORS的麻烦,在我看来,它的效果很好。如前所述,干舷提供了巨大的机会,同时易于设置和维护。它不应该被轻易丢弃。
通过在Freeboard中对JSON有效负载使用GET请求,现在我们可以完全访问OCB中的上下文查询。只要我们使用应该使用的Freeboard(通过查询要显示的数据),它就不需要任何POST方法。投入
?options=keyValues
请求的URL,我们已经获得了一种非常智能,紧凑的方式来可视化来自Broker的数据。
这就是我应该解决的问题。我认为,2015年该主题的最新更新还不够,特别是如果开发出了更好的从OCB访问上下文数据的方法。