全部产品
云市场

认证与连接

更新时间:2018-12-19 15:56:27

本文介绍如何初始化设备信息,建立设备与云端的连接。

通道认证

通道连接时阿里云物联网云端会认证设备身份,即设备三元组信息。如何获取设备三元组? 登录阿里云物联网平台的控制台,选择设备管理,单击设备后的查看,获取需要的三元组信息,即ProductKey、DeviceName及DeviceSecret。

建立连接

  1. 通道建立成功后,在应用生命周期内,SDK会一直维护此连接的有效性。假如连接受网络变化的原因断开了,SDK也会一直尝试重连。
  1. #import <AlinkIoTExpress/AlinkIoTExpress.h>
  2. LKIoTConnectConfig * config = [LKIoTConnectConfig new];
  3. config.productKey = @"your product key";
  4. config.deviceName = @"your device name";
  5. config.deviceSecret = @"your device secret";
  6. config.server = @"www.youserver.com";//设为nil表示使用IoT套件默认连接的地址作为连接服务器
  7. config.port = 1883,//your server port。如果server被设置为nil。则port也不要设置。
  8. config.receiveOfflineMsg = NO;//如果希望收到客户端离线时的消息,可以设为YES.
  9. [[LKIoTExpress sharedInstance]startConnect:config connectListener:self];
  10. //如果config.server置为nil,则默认连接的地址为上海节点:${yourProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883`

连接状态变化监控

在 上面的代码例子中,[startConnect:connectListener:] 调用时可传入 listener来监控通道连接状态的变化。连接状态变化如下枚举所示

  1. typedef NS_ENUM (NSInteger, LKExpressConnectState){
  2. LKExpressConnectStateConnected = 1,
  3. LKExpressConnectStateDisconnected = 2,
  4. LKExpressConnectStateConnecting = 3,
  5. };

断开当前连接

如果你需要更换三元组建立连接,则需要断开当前的连接,否则无法使用新的三元组发起新的认证并连接。如无更换三元组的需要,不建议调用此 API。

  1. #import <AlinkIoTExpress/AlinkIoTExpress.h>
  2. [[LKIoTExpress sharedInstance] stopConnect:^{
  3. //注意:只有在连接断开回调后才能开始新的连接。
  4. }
  5. ];

调试日志打开

如果在使用过程中遇到了问题需要 阿里云IoT的同学分析,请先行打开SDK相关日志。

  1. #import <IMSLog/IMSLog.h>
  2. [IMSLog setAllTagsLevel:IMSLogLevelVerbose];
  3. //设置在控制台显示日志
  4. [IMSLog showInConsole:YES];