如果你耐着性子从第一节看到这里,那么恭喜你,你现在已经准备好构建一个属于自己的物联网平台了。
我们现在来总结一下在本课程中学到的东西。
从 Client-Broker-Client 到 Client-Server
在本课程中,我们通过抽象,将 MQTT 的 Client-Broker-Client 模式转换成了 Client-Server 模式。对于设备而言,它通过调用 DeviceSDK,不用再去关心底层的数据传输细节,只用关心向服务器发送数据和处理服务器下发的数据。对于业务系统来说,它通过调用 IotHub 提供的 API,不需要再建立到 Broker 的连接,只关心处理设备上报的数据和下发数据到设备。至于数据是用 MQTT 还是 CoAP,MQTT Broker在哪里,对 Client-Server 模式都是透明的。我们主要是通过以下两点完成这个抽象的。
主题规划
在 IotHub 中我们定义了一系列的主题,我们把主题当作描述消息内容的元数据字段在使用。这是很关键的一点,如果说我们把消息的描述放入 Payload 的话,那 IotHub 的业务逻辑就和设备应用代码的逻辑耦合到一起了。要记住的是,在 MQTT 或者任何类似队列的系统里,用 Payload 来判断消息的类型,都是 anti-pattern。 在这样的系统里面,应该是用主题名或者队列名来