本文介绍设备注册认证相关问题和原因。
多台设备是否可以使用相同的证书同时或不同时进行连接认证?
不支持。在同一时间内,只允许使用一个设备证书被一台设备用于连接物联网平台。如果多台设备上烧录相同的设备证书,连接时后连接的设备认证时,先连接的设备将会被断连。
设备MQTT连接参数可以批量下载吗?
目前物联网平台不支持批量下载设多个设备的MQTT连接参数。
物联网平台控制台支持单个查看设备的MQTT连接参数,可用于测试设备接入物联网平台的连接认证。具体操作,请参见如何查看MQTT签名参数。
实际业务开发中,设备的连接参数需要通过编辑代码逻辑进行计算和拼接。详细说明,请参见MQTT-TLS连接通信、MQTT-WebSocket连接通信、基于IPv6的MQTT连接通信。
推荐您使用阿里云提供的设备端SDK。使用阿里云提供的任何一种语言的设备端SDK,则不用您自己配置MQTT连接签名机制。具体内容,请参见设备接入Link SDK。
若您不使用阿里云物联网平台的设备端SDK,物联网平台提供了使用开源的Paho MQTT库将设备接入物联网平台的代码示例,不同开发语言的相关代码示例及签名算法文件,请参见MQTT连接签名示例。
设备端SDK是否支持MQTT协议的断线重连?
支持。
测试场景描述:开发板通过Wi-Fi连接路由器。把网线拔掉后,MQTT协议的设备端会自动尝试和服务器重新建立连接。重连尝试时间间隔是1s、2s、4s、8s、…。C SDK重试的最大间隔时间默认是60秒,即断网超过60秒后仍未连接成功,设备端会每隔60秒尝试与服务器进行重连。您可以自定义最大间隔时间。
Android和Java SDK最大间隔时间为128秒,不支持自定义最大间隔时间。
单个设备一型一密免预注册5次后,拒绝注册认证,怎么办?
一个设备只能免预注册五次,超出后无法再注册认证。如果您需要重新注册此设备,需先清除ClientID
再重新注册。
物联网平台提供云端接口DeleteClientIds可批量删除单个设备下的所有标识ClientID
,您可循环调用该接口删除多个设备的ClientID
。
单个阿里云账号调用DeleteClientIds接口的每秒请求数(QPS)最大限制为10。单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。
一型一密免预注册支持的地域和实例有哪些?
华东2(上海)、华北2(北京)地域的物联网平台企业版实例下设备支持使用一型一密免预注册方式接入。
详细内容,请参见一型一密。
MQTT一型一密MQTT动态注册,获取DeviceSecret失败
设备已激活时,您需要调用接口ResetThing重置物联网平台云端设备动态注册状态为未注册,才能再次动态注册设备。
更多详细说明,请参见基于MQTT协议的设备动态注册。
一型一密预注册方式下,一个DeviceName是否只能注册一次?
设备名称在产品内具有唯一性。预注册是获取DeviceName对应DeviceSecret,得到一组设备证书(ProductKey
、DeviceName
和DeviceSecret
)。同一组设备证书只能用于激活一个真实设备。
若DeviceName名下已激活真实设备A:
设备A不能再预注册。如果需要重新注册认证,需您调用ResetThing接口,重置设备A状态为未激活,然后将设备A重新联网激活。此时,物联网平台下发的DeviceSecret不变。
真实设备B也需要使用该DeviceName,则您需在物联网平台上先删除设备A,使设备A的DeviceSecret作废,再使用原DeviceName重新注册设备,获取新的DeviceSecret,用于激活真实设备B。