Wirecloud中ngsi-source-operator从Orion获取数据的配置咨询
配置NGSI Source Operator从Orion取数并对接Wirecloud地图组件
我来一步步给你讲清楚怎么配置NGSI Source Operator,还有Orion订阅的通知URL该用啥,帮你把Orion的数据顺利弄到Wirecloud的地图组件里。
一、NGSI Source Operator的配置步骤
在Wirecloud全局实例里找到NGSI Source Operator,打开它的配置面板,重点填这些参数:
- Broker URL:直接填你的Orion实例地址
http://130.206.117.237:1026,别加多余的路径,operator会自动处理NGSI API的调用逻辑。 - NGSI Version:选
v2就行,现在Orion主流都是用v2版本,除非你特意配置了v1,不然不用改。 - Entity Type:这里要填你Orion里存的实体类型,比如如果是位置类实体,可能是
PointOfInterest或者你自定义的Vehicle,必须和Orion里的实体类型完全一致,不然拿不到数据。 - Attributes:指定地图组件需要的属性,比如
location(这个是GeoJSON格式的坐标,地图组件必须要的)、name(实体名称,用来标记点),多个属性用逗号隔开就行,比如location,name。 - Update Method:分两种模式选:
- 要是数据更新不频繁,选Polling(轮询),然后设置
Polling Interval,比如设5000毫秒(也就是5秒),operator会定期去Orion拉数据。 - 要是想实时获取数据变化,选Subscription(订阅推送),这时候得先在Orion里创建订阅,把通知发到Wirecloud的回调地址,后面我会讲这个地址怎么拿。
- 要是数据更新不频繁,选Polling(轮询),然后设置
- 可选参数:比如
Filter可以加过滤条件,比如id==MyCar001来只拉特定实体的数据,不需要的话留空就行。
配置完点「Apply」保存,然后把operator的entities输出端口,和Map Widget的entities输入端口连起来,这样数据就能流到地图里了。
二、Orion订阅的通知URL设置
当你选了订阅推送模式,得让Orion把数据变化的通知发到Wirecloud,步骤如下:
- 先在Wirecloud的仪表盘里,点开NGSI Source Operator的「信息」或者「订阅设置」(不同版本位置可能有点不一样),里面会显示一个Callback URL,格式大概是
https://wirecloud.global.example.com/callback/xxxxxx,这个就是你要在Orion订阅里用的通知地址,直接复制下来。 - 用curl或者Postman给Orion发请求创建订阅:
- 请求地址:
http://130.206.117.237:1026/v2/subscriptions - 请求方法:POST
- 请求头:
Content-Type: application/json - 请求体示例(记得替换里面的实体类型、属性和回调URL):
{ "description": "给Wirecloud推送实体更新", "subject": { "entities": [ { "type": "你的实体类型", "idPattern": ".*" // 匹配该类型下所有实体,也可以写具体id } ], "condition": { "attrs": ["location", "name"] // 和operator里指定的属性保持一致 } }, "notification": { "http": { "url": "刚才复制的Wirecloud回调URL" }, "attrs": ["location", "name"] } }
- 请求地址:
- 发完请求如果返回201 Created,就说明订阅创建成功了,之后Orion里的实体数据一有变化,就会自动推送到Wirecloud的operator,然后同步到地图组件里。
三、几个要注意的点
- 得确保Orion实例能访问到Wirecloud的回调URL,因为是Orion主动发通知给Wirecloud,要是防火墙挡住了就收不到推送了。
- Map Widget那边要检查属性映射,比如有些组件需要你指定纬度、经度对应的属性,如果你的
location是GeoJSON的Point类型,很多地图组件会自动解析,不用额外配置,但要是组件不支持,可能得拆成lat和lon属性来传。 - 测试的时候可以先用轮询模式,确认能拿到数据,再切换到推送模式,这样排查问题更方便。
内容的提问来源于stack exchange,提问作者Prashant Chauhan
相关产品推荐
相关产品推荐

