ClientCoreSDK Class Reference

Inherits from NSObject
Declared in ClientCoreSDK.h

Overview

MobileIMSDK核心框架的核心入口类。
本类主要提供一些全局参数的读取和设置。

@author Jack Jiang(http://www.52im.net/thread-2792-1-1.html)) @version 2.1

  connectedToServer

是否已成功连接到服务器(当然,前提是已成功发起过登陆请求后).

此“成功”意味着可以正常与服务端通信(可以近似理解为Socket正常建立、身份认证正常通过),“不成功”意味着不能与服务端通信.
不成功的因素有很多:比如网络不可用、网络状况很差导致的掉线、心跳超时等.

本参数是整个MobileIMSDK框架中唯一可作为判断与MobileIMSDK服务器的通信是否正常的准确依据。

本参数将在收到服务端的登陆请求反馈后被设置为true,在与服务端的通信无法正常完成时被设置为false。
那么MobileIMSDK如何判断与服务端的通信是否正常呢? 判断方法如下:

  • 1)登陆请求被正常反馈即意味着通信正常(包括首次登陆时和断掉后的自动重新时);
  • 2)首次登陆或断线后自动重连时登陆请求被发出后,没有收到服务端反馈时即意味着不正常;
  • 3)与服务端通信正常后,在规定的超时时间内没有收到心跳包的反馈后即意味着与服务端的通信又中断了(即所谓的掉线)。

@property (nonatomic, assign) BOOL connectedToServer

Discussion

是否已成功连接到服务器(当然,前提是已成功发起过登陆请求后).

此“成功”意味着可以正常与服务端通信(可以近似理解为Socket正常建立、身份认证正常通过),“不成功”意味着不能与服务端通信.
不成功的因素有很多:比如网络不可用、网络状况很差导致的掉线、心跳超时等.

本参数是整个MobileIMSDK框架中唯一可作为判断与MobileIMSDK服务器的通信是否正常的准确依据。

本参数将在收到服务端的登陆请求反馈后被设置为true,在与服务端的通信无法正常完成时被设置为false。
那么MobileIMSDK如何判断与服务端的通信是否正常呢? 判断方法如下:

  • 1)登陆请求被正常反馈即意味着通信正常(包括首次登陆时和断掉后的自动重新时);
  • 2)首次登陆或断线后自动重连时登陆请求被发出后,没有收到服务端反馈时即意味着不正常;
  • 3)与服务端通信正常后,在规定的超时时间内没有收到心跳包的反馈后即意味着与服务端的通信又中断了(即所谓的掉线)。


本参数由框架自动设置。

Declared In

ClientCoreSDK.h

  loginHasInit

当且仅当用户从登陆界面成功登陆后设置本字段为true,系统退出(登陆)时设置为false。
本参数由框架自动设置。

@property (nonatomic, assign) BOOL loginHasInit

Discussion

当且仅当用户从登陆界面成功登陆后设置本字段为true,系统退出(登陆)时设置为false。
本参数由框架自动设置。

Declared In

ClientCoreSDK.h

  currentLoginInfo

保存提交到服务端的用户登陆信息,可能是登陆用户名、任意不重复的id等,具体意义由业务层决定。

本字段在登陆信息成功发出后就会被设置,将在掉线后自动重连时使用。
因不保证服务端正确收到和处理了该用户的登陆信息,所以本字段因只在{@link #connectedToServer}==true 时才有意义.
本参数由框架自动设置。

@property (nonatomic, retain) PLoginInfo *currentLoginInfo

Discussion

保存提交到服务端的用户登陆信息,可能是登陆用户名、任意不重复的id等,具体意义由业务层决定。

本字段在登陆信息成功发出后就会被设置,将在掉线后自动重连时使用。
因不保证服务端正确收到和处理了该用户的登陆信息,所以本字段因只在{@link #connectedToServer}==true 时才有意义.
本参数由框架自动设置。

Declared In

ClientCoreSDK.h

  chatMessageEvent

框架基础通信消息的回调事件(如:登陆成功事件通知、掉线事件通知)

@property (nonatomic, retain) id<ChatMessageEvent> chatMessageEvent

Discussion

框架基础通信消息的回调事件(如:登陆成功事件通知、掉线事件通知)

Declared In

ClientCoreSDK.h

  chatBaseEvent

通用数据通信消息的回调事件(如:收到聊天数据事件通知、服务端返回的错误信息事件通知)

@property (nonatomic, retain) id<ChatBaseEvent> chatBaseEvent

Discussion

通用数据通信消息的回调事件(如:收到聊天数据事件通知、服务端返回的错误信息事件通知)

Declared In

ClientCoreSDK.h

  messageQoSEvent

QoS质量保证机制的回调事件(如:消息未成功发送的通知、消息已被对方成功收到的通知)

@property (nonatomic, retain) id<MessageQoSEvent> messageQoSEvent

Discussion

QoS质量保证机制的回调事件(如:消息未成功发送的通知、消息已被对方成功收到的通知)

Declared In

ClientCoreSDK.h

+ sharedInstance

取得本类实例的唯一公开方法。

依据作者对MobileIMSDK API的设计理念,本类目前在整个框架运行中 是以单例的形式存活。

+ (ClientCoreSDK *)sharedInstance

Discussion

取得本类实例的唯一公开方法。

依据作者对MobileIMSDK API的设计理念,本类目前在整个框架运行中 是以单例的形式存活。

@return

Declared In

ClientCoreSDK.h

+ isENABLED_DEBUG

返回MobileIMSDK框架的日志输出开关量值。

+ (BOOL)isENABLED_DEBUG

Return Value

true表示开启MobileIMSDK Debug信息在控制台下的输出,否则关闭。默认为NO

Discussion

返回MobileIMSDK框架的日志输出开关量值。

Declared In

ClientCoreSDK.h

+ setENABLED_DEBUG:

设置MobileIMSDK框架的日志输出开关量。

+ (void)setENABLED_DEBUG:(BOOL)enabledDebug

Parameters

enabledDebug

true表示开启MobileIMSDK Debug信息在控制台下的输出,否则关闭。默认为NO

Discussion

设置MobileIMSDK框架的日志输出开关量。

Declared In

ClientCoreSDK.h

+ isAutoReLogin

是否在登陆成功后掉线时自动重新登陆线程中实质性发起登陆请求。

什么样的场景下,需要设置本参数为false?比如:上层应用可以在自已的节电逻辑中控制当网络长时断开时就不需要实质性发起登陆请求了,因为 网络请求是非常耗电的。

本参数的设置将实时生效。

+ (BOOL)isAutoReLogin

Return Value

true表示将在线程运行周期中正常发起,否则不发起(即关闭实质性的重新登陆请求)

Discussion

是否在登陆成功后掉线时自动重新登陆线程中实质性发起登陆请求。

什么样的场景下,需要设置本参数为false?比如:上层应用可以在自已的节电逻辑中控制当网络长时断开时就不需要实质性发起登陆请求了,因为 网络请求是非常耗电的。

本参数的设置将实时生效。

Declared In

ClientCoreSDK.h

+ setAutoReLogin:

设置是否在登陆成功后掉线时自动重新登陆线程中实质性发起登陆请求。

什么样的场景下,需要设置本参数为false?比如:上层应用可以在自已的节电逻辑中控制当网络长时断开时就不需要实质性发起登陆请求了,因为 网络请求是非常耗电的。

本参数的设置将实时生效。

+ (void)setAutoReLogin:(BOOL)arl

Parameters

arl

true表示将在线程运行周期中正常发起,否则不发起(即关闭实质性的重新登陆请求)

Discussion

设置是否在登陆成功后掉线时自动重新登陆线程中实质性发起登陆请求。

什么样的场景下,需要设置本参数为false?比如:上层应用可以在自已的节电逻辑中控制当网络长时断开时就不需要实质性发起登陆请求了,因为 网络请求是非常耗电的。

本参数的设置将实时生效。

Declared In

ClientCoreSDK.h

– isInitialed

MobileIMSDK的核心框架是否已经初始化.
当调用 @link initCore @/link 方法后本字段将被置为true,调用@link releaseCore @/link时将被重新置为false.
本参数由框架自动设置。

- (BOOL)isInitialed

Return Value

true表示已初始化完成,否则没有初始化完成

Discussion

MobileIMSDK的核心框架是否已经初始化.
当调用 @link initCore @/link 方法后本字段将被置为true,调用@link releaseCore @/link时将被重新置为false.
本参数由框架自动设置。

Declared In

ClientCoreSDK.h

– initCore

初始化核心库.

本方法被调用后, @link isInitialed @/link 将返回true,否则返回false。

本方法无需调用者自行调用,它将在发送登陆路请求后(即调用[LocalDataSender sendLogin:(NSString )loginName withPassword:(NSString )loginPsw] 时)被自动调用。

- (void)initCore

Discussion

初始化核心库.

本方法被调用后, @link isInitialed @/link 将返回true,否则返回false。

本方法无需调用者自行调用,它将在发送登陆路请求后(即调用[LocalDataSender sendLogin:(NSString )loginName withPassword:(NSString )loginPsw] 时)被自动调用。

Declared In

ClientCoreSDK.h

– releaseCore

释放MobileIMSDK框架资源统一方法。

本方法建议在退出登陆(或退出APP时)时调用。调用时将尝试关闭所有 MobileIMSDK框架的后台守护线程并同设置核心框架init==false、 loginHasInit==false、connectedToServer==false。

- (void)releaseCore

Discussion

释放MobileIMSDK框架资源统一方法。

本方法建议在退出登陆(或退出APP时)时调用。调用时将尝试关闭所有 MobileIMSDK框架的后台守护线程并同设置核心框架init==false、 loginHasInit==false、connectedToServer==false。

See Also

Declared In

ClientCoreSDK.h

– saveFirstLoginTime:

用于首次登陆成功后,保存服务端返回的登陆时间(此时间将会随着完整登陆信息,在掉线重连时再次提交到服务端,服务端 可据此时间精确判定在多端、网络复杂性的情况下的互踢逻辑)。

- (void)saveFirstLoginTime:(long)firstLoginTime

Parameters

firstLoginTime

服务端返回的首次登陆时间(此时间为形如“1624333553769”的Java时间戳)

Availability

6.0

Discussion

用于首次登陆成功后,保存服务端返回的登陆时间(此时间将会随着完整登陆信息,在掉线重连时再次提交到服务端,服务端 可据此时间精确判定在多端、网络复杂性的情况下的互踢逻辑)。

Declared In

ClientCoreSDK.h

– currentLoginUserId

本方法已弃用。请使用 [ClientCoreSDK sharedInstance].currentLoginInfo.loginUserId 替代之! (Deprecated: 本方法已弃用。请使用 [ClientCoreSDK sharedInstance].currentLoginInfo.loginUserId 替代之!)

- (NSString *)currentLoginUserId

Declared In

ClientCoreSDK.h