全部产品
Search
文档中心

阿里云物联网平台:通信相关问题

更新时间:Sep 09, 2022

本文介绍设备与物联网平台和物联网平台与服务器端的通信相关问题和解决方法。

设备重复收到消息,如何去重?

由于QoS=1的机制是保证最少收到一次消息,所以可能会出现重复收到消息的情况,但重复消息的消息ID是相同的。设备端可以根据消息ID去重;物联网平台会尽量减少重复发送QoS=1时的消息。

物联网平台是否会保存消息?

消息通过到Topic发送后,物联网平台就会立即将消息转发给订阅了该Topic的设备。

QoS=0时,物联网平台不保存消息。

QoS=1时,消息会保存7天。

服务器端如何获取设备消息?

服务器端可通过以下两种方式获取设备消息。

  • 服务端订阅:使用物联网平台的服务端订阅功能,订阅一个或多个消息类型。物联网平台根据您设置的订阅,将产品下所有设备的该类型消息流转至您的服务器。支持以下两种方式的服务端订阅:

    • 使用AMQP SDK接收物联网平台流转的设备消息,请参见AMQP服务端订阅及相关文档。

    • 使用MNS SDK接收物联网平台流转到MNS队列的设备消息,请参见MNS服务端订阅

  • 云产品流转:使用规则引擎的云产品流转功能,通过数据流转规则将指定设备数据流转到消息服务(MNS)的主题或消息队列(RocketMQ)的队列中。服务器通过MNS或RocketMQ SDK接收消息。详细内容,请参见云产品流转概述

已配置MNS服务端订阅,但在控制台上发送消息,MNS的队列中并没有收到该消息,为什么?

在物联网平台控制台发送的消息和调用云端API发送的消息均属于服务端发送的消息,不会流转到MNS队列,只有设备发出的消息(设备上报消息、设备状态变化通知、设备标签变更等)才会流转到MNS队列里。

如何判断MNS服务端收到的消息是来自哪个Topic?

发送到MNS队列中的消息格式:{ “messageid”:”12345”, “messagetype”:”status/upload”, “topic”:”null/topic”, “payload”: {data}, “timestamp”: 1469564576}中有Topic字段,您可根据Topic字段进行判断。

如何从物联网平台云端下发指令到设备端?

您可调用物联网平台API下发消息,支持API如下:

API

说明

Pub

通过自定义Topic向指定设备发布消息。

BatchPub

通过自定义Topic,向指定产品下的多个设备,批量发送消息。

PubBroadcast

向指定产品下在线设备发布广播消息。

在线设备可指定为所有在线设备或订阅了指定Topic的在线设备。

RRpc

向指定设备发送请求消息,并同步返回响应。

SetDeviceProperty

设置指定设备的物模型属性值。

SetDevicesProperty

设置指定产品下多个设备的物模型属性值。

InvokeThingService

在单个设备上调用指定的物模型服务。

InvokeThingsService

在指定产品下多个设备上调用指定的物模型服务。