APP和设备处于局域网环境中,未和外网连接,往往需要通过本地通信的方式,对设备进行控制和查询。阿里云IoT提供了一种本地通信方案,可以达到该目标。
背景信息
设备端的Link Kit SDK中已内置本地通信功能(ALCS),这样集成Link Kit SDK的设备,即可使用本地通信能力。集成了ALCS client功能的android
app、IOS app、边缘网关等终端都可以通过本地控制与芯片模组产品交互。
第一次连接和认证阶段 APP 会和云端有一次数据交互来获取认证信息,连接认证成功之后会将认证数据保存在本地,后续的连接认证优先使用本地缓存的认证数据。
操作步骤
- App端开发。
App端流程如下。
- 设备端开发。
对于本地通信功能,设备端只需要使用IOT_RegisterCallback函数注册ITE_PROPERTY_GET事件,实现对应回调函数即可。
接口说明如下。
- 当该事件被触发时,用户收到的payload格式为本地通信请求的设备属性列表,以JSON格式描述。例如:
["property1","property2","property3"]
。
- 当用户回复该本地通信请求时,需按如下格式回复消息:
{"property1":...,"property2":...,"property3":...}
。
示例如下。
property1为int型,property2为字符串类型,property3为复合类型,包含int型的item1和字符串类型的item2:
{"property1":23,"property2":"hello,world","property3":{"item1":23,"item2":"hello"}}
具体代码可参考SDK Example中的user_property_get_event_handler回调函数的实现。