开发者中心

SmartREST 1.0

概述

本节介绍如何将现有的SmartREST 1.0模板与MQTT一起使用。 请注意,SmartREST 1.0是为HTTP请求/应答设计的,不支持与MQTT的ID-less通信。 它只使用MQTT连接发送与使用HTTP发送的请求完全相同的请求,因此带有一些限制,因为MQTT不是请求/应答模式。 添加了对SmartREST 1.0的支持,以便在使用现有实现时轻松过渡。

如果您开始新的设备集成,我们强烈建议使用SmartREST 2.0。

详细SmartREST 1.0文档,请参阅SmartREST指南

MQTT ClientId

虽然您仍然需要使用SmartREST 1.0发送每个消息正文中的ID,但使用正确的MQTT ClientId连接仍然很重要。 MQTT ClientId需要将externalId与设备的类型"c8y_Serial"进行匹配。 它用于为您分配正确的操作和应答。

发送SmartREST 1.0

为了将数据发送到服务器,您可以发布与POST到SmartREST端点/s相同的内容。 X-Id标头是客户端需要发布的主题的一部分。

主题:


  s/ul/<X-ID>;
                      

接收SmartREST 1.0

如果模板触发应答模板,则服务器将在以下主题上发布返回的消息。

主题:


  s/dl/<X-ID>;
                      

此主题可由客户端订阅。

接收操作

SmartREST 1.0通过HTTP提供了/devicecontrol/notifications端点来监听实时操作。 您可以在以下MQTT主题中接收相同的内容。

主题:


  s/ol/<X-ID>;
                      

限制

MQTT当前不支持请求/应答。因此,如果您在发布主题上发送请求并在订阅主题上收到应答 ,客户端将无法安全地匹配它们的内容。 你可以通过设计模板来避免这个限制,你永远不需要知道什么请求触发应答,客户端通过messageId自动知道它。