我一直在尝试连接Freeboard以可视化来自OCB的上下文信息,但是遇到了许多困难,这些困难使我无法从那里接收任何数据。我的想法是将Freeboard连接到OCB存在问题,因为在OCB的订阅列表中没有任何新条目,并且Freeboard中的数据源表明它从未更新。
OCB作为docker容器打开。干舷在Docker主机中运行。
我尝试通过以下方式将ip设置为从docker提取的ip:
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' orion1
它给了我172.17.0.3,但是在那上面也没有用。我想它应该没有,因为只要我通过cUrl或Insomnia可以通过localhost:1026与OCB进行通信。我可以推送新实体,更新等等。
尚未运行的累积服务器(link here)现在可以。但问题是,我自己添加了订阅,并且无法在localhost(回送接口(interface))上运行acc服务器,而无法在其他可用接口(interface)上运行acc服务器,然后将该接口(interface)的ip添加到我发送给OCB的订阅有效负载中。也许某处与Freeboard有冲突。
最佳答案
这里的问题与缺少CORS支持有关。一个简单的解决方案就是在启动Orion Context Broker时启用CORS功能,如here所述。
我对此主题进行了相当(实际上是不必要的)研究,并提出了针对此github post中描述的问题的解决方案。有一种代理服务器方法可以解决此问题。我想提出向Orion Context Broker添加CORS支持的建议,当发现它已经实现时,我感到非常惊讶。
有诸如this,this和this之类的帖子,对于解决此问题非常有帮助。
但是,我有两个请求。我想,关于OCB和外围软件的后端和文档,@ fgalan现在是一个不错的选择。
我认为解决方案很简单。只需在Freeboard中使用JSON数据源。我了解在2015年没有RESTfull v2版本的OCB API的时候为Freeboard创建单个数据源插件的动机,但是现在有了,所以为什么不使用它呢?从那时起,我就摆脱了CORS的麻烦,在我看来,它的效果很好。如前所述,干舷提供了巨大的机会,同时易于设置和维护。它不应该被轻易丢弃。
通过在Freeboard中对JSON有效负载使用GET请求,现在我们可以完全访问OCB中的上下文查询。只要我们使用应该使用的Freeboard(通过查询要显示的数据),它就不需要任何POST方法。投放
?options=keyValues
到请求的URL,我们已经获得了一种非常智能和紧凑的方式来可视化来自Broker的数据。
这就是我应该解决的问题。在我看来,2015年有关此主题的最新更新还不够,尤其是在开发出更好的方法以从OCB访问上下文数据的情况下。
关于docker - Freeboard的Orion数据源和Context Broker之间没有连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51022502/