日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

認證與連接

本文介紹如何進行iOS Link SDK初始化,建立設備與物聯網平臺的連接。

背景信息

iOS Link SDK僅支持一機一密的設備認證方式。更多信息,請參見一機一密

初始化SDK

示例代碼:

#import <IotLinkKit/IotLinkKit.h>

    //初始化前請先注冊監聽器,監聽長連接通道的連接狀態變化
    [[LinkKitEntry sharedKit] registerChannelListener:self];

    ////輸入設備認證信息
    self.productKey = self.textFieldProductKey.text ;
    self.deviceName = self.textFieldDeviceName.text ;
    self.deviceSecret = self.textFieldDeviceSecret.text;

    LinkkitChannelConfig * channelConfig = [[LinkkitChannelConfig alloc] init];
    channelConfig.productKey = self.productKey;
    channelConfig.deviceName = self.deviceName;
    channelConfig.deviceSecret = self.deviceSecret;
    channelConfig.cleanSession = (self.cleanSession == 1);
    //channelConfig.server = @"your custom server url";
    //channelConfig.port = 1883;
    LinkkitSetupParams * setupParams = [[LinkkitSetupParams alloc] init];
    setupParams.appVersion = self.appVersion;
    setupParams.channelConfig = channelConfig;
    [[LinkKitEntry sharedKit] setup:setupParams resultBlock:^(BOOL succeeded, NSError * _Nullable error) {
        LinkkitLogDebug(@"setup error : %@", error);
        dispatch_async(dispatch_get_main_queue(), ^{
            [self ims_showHUDWithMessage:[NSString stringWithFormat:@"Linkkit 初始化 : %@",
                                          succeeded ? @"成功" : @"失敗"]];
        });
    }];
            
重要
  • 初始化時的resultBlock回調成功不代表MQTT長連接通道建立成功。

  • 您可調用 [[LinkKitEntry sharedKit] registerChannelListener:self]方法,根據監聽器的[onConnectStateChange:state:]回調方法,來判斷連接是否成功。

相關參數

參數

示例值

說明

productKey

a18wP******

設備認證信息。即完成添加設備后,您保存至本地的設備證書。

您也可以在物聯網平臺的設備詳情頁查看設備的認證信息。更多信息,請參見獲取設備認證信息

deviceName

LightSwitch

deviceSecret

uwMTmVAMnGGHaAkqmeDY6cHxxB******

server

a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com

設備的接入域名。

  • 企業版實例和新版公共實例:在實例詳情頁面的開發配置面板,查看接入域名。

  • 舊版公共實例:接入域名格式為${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com

新舊版公共實例和企業版實例、以及接入域名的更多信息,請參見查看實例終端節點

反初始化SDK

反初始化時,斷開設備與物聯網平臺的MQTT長連接。如果需要注銷初始化,調用如下接口。

    [[LinkKitEntry sharedKit] destroy:^(BOOL succeeded, NSError * _Nullable error) {
        LinkkitLogDebug(@"kit destroy error : %@", error);
        dispatch_async(dispatch_get_main_queue(), ^{
            [self ims_showHUDWithMessage:[NSString stringWithFormat:@"Linkkit 去初始化 : %@",
                                          succeeded ? @"成功" : @"失敗"]];
        });
    }];
            

日志開關

打開SDK內部日志輸出開關:


#import <IMSLog/IMSLog.h>

NSString * const IMS_DEMO_TAG = @"LinkkitDemo";

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 添加以下代碼打開SDK的控制臺日志
    [IMSLog setAllTagsLevel:IMSLogLevelAll];
    //創建日志面板助手,注入到日志框架
    //[IMSLog addAssistant:[[IMSDashboardLogAssistant alloc] init]];
    //設置在控制臺顯示日志
    [IMSLog showInConsole:YES];
    //設置Demo的日志Tag
    [IMSLog registerTag:IMS_DEMO_TAG];

    return YES;
}
            

MQTT長連接通道狀態變化listener

示例代碼:

- (void)onConnectStateChange:(nonnull NSString *)connectId state:(LinkkitChannelConnectState)state {
    NSString * connectTip = nil;
    if (state == LinkkitChannelStateConnected) {
        connectTip = @"已連接";
    } else if (state == LinkkitChannelStateDisconnected) {
        connectTip = @"未連接";
    } else {
        connectTip = @"連接中";
    }
    dispatch_async(dispatch_get_main_queue(), ^{
        self.labelConnectState.text = connectTip;
    });
}

- (void)onNotify:(nonnull NSString *)connectId topic:(nonnull NSString *)topic data:(id _Nullable)data {
    NSString * downData = [NSString stringWithFormat:@"收到下推,topic : %@ \r\n", topic];
    downData = [downData stringByAppendingString:[NSString stringWithFormat:@"\r\n數據 : %@", data]];

    LinkkitLogDebug(@"kit recv  topic : %@", topic);

    dispatch_async(dispatch_get_main_queue(), ^{
        self.textViewDownData.text = downData;
    });
}

- (BOOL)shouldHandle:(nonnull NSString *)connectId 
               topic:(nonnull NSString *)topic {
    return YES;
}