认证与连接
本文主要介绍如何进行SDK初始化,建立设备与云端的连接。
设备认证
SDK支持的设备认证方案如下:
设备秘钥认证方式
设备秘钥也可称为三元组,主要为ProductKey
、DeviceName
、DeviceSecret
三个元素。三元组信息可在IFLYIoT
控制台上获取。
iOS设备认证的模块已由SDK内部处理,开发者只需要配置相关初始化参数即可完成认证连接。
配置参数说明如下:
参数 | 说明 | 备注 |
---|---|---|
host | 云端域名 | linkapi.xf-yun.cn |
port | 云端端口 | 1883 |
productKey | 产品标识 | 三元组之一 |
deviceName | 设备标识 | 三元组之一 |
deviceSecret | 设备秘钥 | 三元组之一 |
clientId | 设备端唯一标识 | 开发者针对连接设备自定义的设备标识 |
keepAlive | 心跳间隔时间 | 单位秒 |
Swift示例
self.iot = IoTInstance.iotInstance
self.iot.delegate = self
self.config = IoTConfig.init(host: kHost, port: kPort, productKey: kProductKey, deviceName: kDeviceName, deviceSecret: kDeviceSecret, clientId: kClientId, keepAlive: kKeepAlive)
self.iot.iotConfigParams(config: self.config)
OC示例
self.instance = [IoTInstance sharedInstance];
self.instance.delegate = self;
self.config = [[IoTConfig alloc] initWithHost:kHost port:kPort productKey:kProductKey deviceName:kDeviceName deviceSecret:kDeviceSecret clientId:kClientId keepAlive:kKeepAlive];
[self.instance iotConfigParamsWithConfig:self.config];
连接
iOSSDK的连接非常简便,只需根据上述的配置,完成初始化参数配置后,根据生成的实例对象,调用connect
函数即可完成连接。
Swift示例
self.iot.connect()
OC示例
[self.instance connect];
connect
函数会返回一个布尔值,用以告诉开发者,发起连接是否成功。这个状态值用于SDK初始化连接的说明,真正的连接成功,通过代理方法通知开发者。
代理函数说明
连接成功回调
开发者发起连接后,服务端响应连接成功后回调该方法
iotConnect(_ iot: IoTInstance)
断开连接回调
当因为各种原因导致客户端与云端连接断开时,回调该方法
iotDisconnect(_ iot: IoTInstance)
获取属性回调
开发者通过云端下发指令,获取设备端属性的时候,回调该方法
iotGet(_ iot: IoTInstance, properties: [String]) -> Dictionary<String, Any>?
设置属性回调
开发者通过云端下发指令,设置设备端属性的时候,回调该方法
iotSet(_ iot:IoTInstance, properties: [String: Any]) -> String?
调用服务回调
开发者通过云端下发指令,调用设备端提供的服务的时候,回调该方法
iotCall(_ iot: IoTInstance, identifier: String, services: [String : Any]) -> String?
消息转发回调
其它设备端转发消息到当前设备的时候,回调该方法
iotNotice(_ iot: IoTInstance, messages: [String: Any]) -> String?
上报属性或事件回调
开发者通过设备端主动上报属性或事件的时候,服务端响应后,回调该方法
iotUpload(_ iot: IoTInstance, messages: [String: Any], type: IoTUploadType)