理解 Azure IoT Hub 的直接方法调用

可以从云直接调用设备的方法,这个方法就叫直接方法,该方法的是类似于的请求,属于应答式的请求,而且要求设备在过期时间范围内应答,否则就会失败。直接方法的应用场景适合于和单个或者少量设备进行交互的场景。

photo-1558644737-83e2c885c51e.JPG

每个直接方法的对象都是单个的设备,如果计划一次性操作大量的设备,那么考虑使用, 它主要可用于:

多个设备上调用直接方法。

规划在掉线设备上线后调用方法。

直接方法的生命周期

直接方法的实际应用是在设备上实现的,设备可以以方法的形式接受参数输入。用户一般从service SDK或者是service侧开始调用设备的直接方法,如果使用rest api, service侧的URI是, 设备通过协议从:iothub/methods/POST//接受请求。(如果是协议,则使用:IoThub-methodname and IoThub-status ), 需要注意的是中只能使用US-ASCII字符。

直接方法是同步方法(注意所有的SDK关于同步的实现), 在设定的超时时间内,要么失败,好么成功。注意默认超时时间是30秒,可设置的值是从5秒到300秒之间。

直接方法使用的协议是:

Service端是HTTPS

设备端是, 或者 +

一定是一个json对象,最大大小是128KB

从后端应用上调用直接方法

后端应用是通过来通过发起直接方法调用的,如果不使用SDK,可以直接调用reset api:

https://fully-qualified-iothubname.azure-devices.net/twins//methods?api-version=2018-06-30

该rest api必须使用来调用,传入body进行调用:

{

"methodName":"reboot",

"responseTimeoutInSeconds":200,

"payload":{

"input1":"someInput",

"input2":"anotherInput"

}

}

我们可以使用来调用:

curl-X POST /

https://.azure-devices.net/twins//methods?api-version=2018-06-30 /

-H"Authorization: SharedAccessSignature sr=iothubname.azure-devices.net&sig=x&se=x&skn=iothubowner"/

-H"Content-Type: application/json"/

-d"{

"methodName": "reboot",

"responseTimeoutInSeconds": 200,

"payload": {

"input1": "someInput",

"input2": "anotherInput"

}

}"

认证只需要 Key就可以了。

如果是在IoT Edge module上运行直接方法:

https://.azure-devices.net/twins//modules//methods?api-version=2018-06-30

后端应用会接收到一个回复,主要的回复包括如下的字段:

HTTP状态码

200 表示运行成功

404 表示,给出的设备id不合法,或者设备不在线。

504 表示gateway和设备之间的联系超时。

头里包括ETAG, Request Id, Content Type, Content Encoding.

Json格式的消息体:

{

"status":201,

"payload":{...}

}

注意这里的body和body里面的status都是由设备提供,实现自己的逻辑的。

也可以在上调用直接方法,用法一样,但是要提供

设备上处理直接方法

设备上可以通过协议和协议来处理。

MQTT

通过MQTT的topic 来接受直接方法的调用。方法收到的方法体:

{

"input1":"someInput",

"input2":"anotherInput"

}

注意

方法的请求QoS被设置为了0, 也就是说最多发送一次。不保证请求一定到达设备。

Response

设备送回复到topic: iothub/methods/res//?$rid=

属性由设备提供状态

属性是request id,通过后端方法调用传入的。

我们是设计师、工程师、梦想者,是您扬帆出海的私人顾问专家


相关内容:
[亚马逊开店深圳办事处地址在哪里]
[亚马逊开店深圳办事处地址在哪里]
亚马逊开店深圳办事处地址揭秘:一站式开店服务,轻松拥抱财富!各位亲爱的创业者们,你们好!今天要给大家带来一个好消息——亚马逊开店深圳办事处地址终于揭开了神秘面纱!在这里,
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠:珠宝行业的巨大商机等你来挖掘!在炎热的夏季,一杯清凉的饮料、一本好书和一个精美的翡翠饰品,想必是很多人的首选。翡翠作为中国传统文化中的瑰宝之一,以其晶莹

TG客服:@SSjiejie — 官方频道:@SSwangluo

三生网络 © 2009-2023 超15年出海经验,跨境项目专家