LKAppExpress Class Reference

Inherits from NSObject
Declared in LKAppExpress.h

Overview

提供一条双工的长连接通道

+ sharedInstance

单例

+ (instancetype)sharedInstance

Discussion

单例

Declared In

LKAppExpress.h

– startConnect:connectListener:

长连接通道启动接口,应用起来时调用一次

- (void)startConnect:(LKAEConnectConfig *)config connectListener:(id<LKAppExpConnectListener>)listener

Parameters

config

app 长连接通道配置项

listener

通道连接状态侦听者

Discussion

长连接通道启动接口,应用起来时调用一次

Declared In

LKAppExpress.h

– addConnectListener:

增加通道连接状态变化 listener

- (void)addConnectListener:(id<LKAppExpConnectListener>)listener

Parameters

listener

通道连接状态侦听者

Discussion

增加通道连接状态变化 listener

Declared In

LKAppExpress.h

– removeConnectListener:

增加通道连接状态变化 listener

- (void)removeConnectListener:(id<LKAppExpConnectListener>)listener

Parameters

listener

通道连接状态侦听者

Discussion

增加通道连接状态变化 listener

Declared In

LKAppExpress.h

– invokeWithTopic:opts:params:respHandler:

RPC请求接口,封装了业务的上行 request 以及下行 response。

- (void)invokeWithTopic:(NSString *)topic opts:(NSDictionary *_Nullable)opts params:(NSDictionary *)params respHandler:(LKAppExpResponseHandler)responseHandler

Parameters

topic

rpc请求的 topic,由具体业务确定,上行的完整 topic 形如: /sys/${productKey}/${deviceName}/app/up/abc/cba, 其中App 端 Topic 订阅协议前缀:/sys/${productKey}/${deviceName}/app/up 在 sdk 中会自动补齐。 所以开发者只需要传完整 topic 的业务部分,如上例中的 /abc/cba 即可。

opts

可选配置项,可空,预留

params

业务参数。

responseHandler

业务服务器响应回调接口,参见 LKExpResponse

Discussion

RPC请求接口,封装了业务的上行 request 以及下行 response。

Declared In

LKAppExpress.h

– publish:params:complete:

发布消息接口,不同于 invokeWithMethod:opts:params:respHandler: 。这个接口不会有业务回执。

- (void)publish:(NSString *)topic params:(NSDictionary *)params complete:(void ( ^ ) ( NSError *_Nullable ))completeCallback

Parameters

topic

rpc 请求的 topic,由具体业务确定,上行的完整 topic 形如: /sys/${productKey}/${deviceName}/app/up/abc/cba 其中App 端 Topic 订阅协议前缀:/sys/${productKey}/${deviceName}/app/up 在 sdk 中会自动补齐。 所以开发者只需要传完整 topic 的业务部分,如上例中的 /abc/cba 即可。 也可以使用通配符 如 /abc/#.

params

业务参数。

completeCallback

业务服务器响应回调接口,参见 LKExpResponse

Discussion

发布消息接口,不同于 invokeWithMethod:opts:params:respHandler: 。这个接口不会有业务回执。

Declared In

LKAppExpress.h

– addDownStreamListener:listener:

设置通道的下推侦听者,如果不需要用的时候,记得调用 removeDownStreamListener:LKAppExpress 收到云端下推的处理逻辑如下所示:

- (void)addDownStreamListener:(BOOL)uiSafety listener:(id<LKAppExpDownListener>)downListener

Parameters

uiSafety

是否要在UI线程里回调,建议为 YES

downListener

侦听下推消息,参见 LKExpDownListener

Discussion

设置通道的下推侦听者,如果不需要用的时候,记得调用 removeDownStreamListener:LKAppExpress 收到云端下推的处理逻辑如下所示:

if ([downListener shouldHandle:topic] == YES) { [downListener onDownstream:topic data:data]; } else { NSLog(@“message will ignored”); }

Declared In

LKAppExpress.h

– removeDownStreamListener:

取消通道的某个下推侦听者

- (void)removeDownStreamListener:(id<LKAppExpDownListener>)downListener

Parameters

downListener

侦听下推消息,参见 LKExpDownListener

Discussion

取消通道的某个下推侦听者

Declared In

LKAppExpress.h

– subscribe:complete:

app 向云端订阅 topic 的接口。SDK 启动时会默认向云端订阅 app 相关的所有下行消息。即自动 subscribe topic:@“/#"。 所以默认情况下无需再订阅。

- (void)subscribe:(NSString *)topic complete:(void ( ^ ) ( NSError *_Nullable error ))completionHandler

Parameters

topic

订阅的消息的 topic,由具体业务确定,只需要传业务方的区段,公用区段不需要传. 下行的完整 topic 形如: /sys/${productKey}/${deviceName}/app/down/abc/cba 其中App 端 Topic 订阅协议前缀:/sys/${productKey}/${deviceName}/app/down 在 sdk 中会自动补齐。 所以开发者只需要传完整topic的业务部分,如上例中的 /abc/cba 即可。 也可以使用通配符 如 /abc/#.

completionHandler

订阅流程完成的 callback,如果 error 为空表示订阅成功,否则订阅失败

Discussion

app 向云端订阅 topic 的接口。SDK 启动时会默认向云端订阅 app 相关的所有下行消息。即自动 subscribe topic:@“/#"。 所以默认情况下无需再订阅。

Declared In

LKAppExpress.h

– unsubscribe:complete:

app向云端取消订阅 topic 的接口。SDK 启动时会默认向云端订阅 app 相关的所有下行消息。即主动 [subscribe topic:@“/#”]。 如果应用层不希望订阅所有下行,可以先[unsubscrbie topic:@“/#”]取消所有下行的订阅。再subscribe自己感兴趣的 topic.

- (void)unsubscribe:(NSString *)topic complete:(void ( ^ ) ( NSError *_Nullable error ))completionHandler

Parameters

topic

取消订阅的消息的 topic,由具体业务确定,只需要传业务方的区段,公用区段不需要传. 下行的完整 topic 形如: /sys/${productKey}/${deviceName}/app/down/abc/cba 其中 Ap p端 Topic 订阅协议前缀:/sys/${productKey}/${deviceName}/app/down 在 sdk 中会自动补齐。 所以开发者只需要传完整 topic 的业务部分,如上例中的 /abc/cba 即可。 也可以使用通配符 如 /abc/#.

completionHandler

取消订阅流程完成的 callback,如果 error 为空表示订阅成功,否则订阅失败

Discussion

app向云端取消订阅 topic 的接口。SDK 启动时会默认向云端订阅 app 相关的所有下行消息。即主动 [subscribe topic:@“/#”]。 如果应用层不希望订阅所有下行,可以先[unsubscrbie topic:@“/#”]取消所有下行的订阅。再subscribe自己感兴趣的 topic.

Declared In

LKAppExpress.h

– getClientId

获取当前长连通道的 clientId

- (NSString *)getClientId

Discussion

获取当前长连通道的 clientId

Declared In

LKAppExpress.h