【发布时间】:2017-08-21 13:49:49
【问题描述】:
我们使用 cumulocity REST API。定期实时通知工作,例如我们订阅/alarms/*,启动我们的连接/轮询循环,当我们创建警报时,我们会收到预期的 JSON。我们没有安装任何特定的模块或语句,它只是工作。 但是,当我们尝试对 SmartREST 执行相同操作时,一旦创建警报,就会收到此错误:
40,,/alarms/177649296,Could not find any templates subscribed for the channel
按照参考指南 (http://cumulocity.com/guides/reference/smartrest/),我们尝试了这样的方法,其中所有请求都具有相同的 X-Id-header,并且所有请求都导致预期的 http 状态 200 并且没有错误消息,除了最后一个:
- 通过 POST 到 /s
注册智能响应模板 正文:11,102,,,$.channel - 握手:POST 到 /cep/realtime
正文:80响应是我们的 clientId(例如 191het1z38bp7iq1m96jqqt8jnef) - 订阅:POST 到 /cep/realtime
正文:81,191het1z38bp7iq1m96jqqt8jnef,/alarms/* - 连接:POST 到 /cep/realtime
正文:83,191het1z38bp7iq1m96jqqt8jnef
在正常的 REST 情况下,通知由一个带有 2 个元素的 JSON 数组组成,这两个元素都有一个属性“通道”。这就是我们对响应模板的期望。相反,我们得到了上述错误 40。
我们的回复模板错了吗? X-Id 是否没有正确匹配?没有“为频道订阅的模板”是什么意思?订阅是针对 clientId 完成的,而不是针对特定的响应模板,并且无论如何都应该自动匹配模板。那么“模板”在这里可能意味着“X-Id”吗?文档对于该词的含义似乎模棱两可。但无论如何,我们确实在所有请求中使用了相同的 X-Id 标头。
任何关于我们做错了什么的指针都将不胜感激,因为我们现在几乎尝试了任何事情。
【问题讨论】:
标签: complex-event-processing cumulocity