Orion Context Broker,订阅格式 "JSON"

Orion Context Broker, subscription format "JSON"

我正在 contextBroker 上进行简单的订阅,我正在订阅我的节点应用程序。

subscribeContext

之后它 returns 200 状态正常,它在 mongo, orion db 中插入该行。

问题是 collection csubs 格式的字段是 "XML",并且在我的节点应用程序上,当我记录 contextBroker 发送的 body 时,它记录了这个 logs from node that is subscribed

空body。然后,当我将 mongo 中的格式更改为 "JSON" 时,一切正常。 body returns 来自 contextBroker 的数据。

我的问题是,如何让 contextBroker 在格式字段中插入默认值 "JSON"。

更新:

contextBroker 版本为 0.26.1

更新

这里我尝试使用 attributeFormat=object 让它在格式字段中插入 "JSON",但它仍然是 "XML"

Orion Context Broker 根据用于与此类通知关联的订阅上下文操作的响应 的编码来选择通知编码。请注意,在这种情况下,响应在 XML 中,因此您会在 XML 中收到通知。

我猜你在响应中得到 XML 因为 Accept HTTP header 没有在订阅上下文请求中使用,这隐含地是 Acccept: */*,这意味着客户端对编码没有偏好。在这种情况下,Orion 选择 XML(由于遗留原因,要保持与仅支持 XML 的旧 Orion 版本的向后兼容性)。

因此,对于这种情况,有两种可能的解决方案:

  • (推荐)在订阅上下文请求中包含 Accept: application/json
  • ?notifyFormat=json 添加到 "force" 通知以在 JSON 中发送(例如 POST /v1/subscribeContext?notifyFormat=json),无论用于响应订阅上下文操作的编码如何。

Side-note:ONTIMEINTERVAL 订阅(屏幕截图中显示的那个)have been deprecated。因此,我们鼓励您停止使用它们,改用 ONCHANGE。