Orion Broker:在不更改消息格式的情况下续订订阅

Orion Broker: Renew subscriptions without changing message format

我有一个 Orion 上下文代理实例 运行 和其他几个服务通过 "ONCHANGE" 订阅从它接收通知。

我还有一个简单的脚本,可以通过 GET /v2/subscriptions 检查现有订阅,然后根据需要续订。但是,此端点不会 return 为每个订阅者发送数据的格式 (XML/JSON)。

问题是不同的服务需要不同的格式并且不知道初始 Accept header 是不可能正确续订的,因为当调用任何更新方法已制定(POST /v1/updateContextSubscriptionPUT /v1/contextSubscriptions/{subscriptionID}),默认为 XML

有没有一种方法可以让我在不直接访问 Mongo 数据库的情况下知道订阅的格式?或者任何不改变最初设置的消息格式的更新方法?

XML 自 Orion 0.23.0 以来已弃用(更多信息 here)。因此,我建议您调整所有通知接收器以仅处理 JSON 并始终使用 JSON.

更新订阅

否则,您的更新订阅程序需要跟踪每个接收器使用的格式(URL->格式table)以便在每个案例。