APPSDK与云端长连接库说明
API概览
名称 | 描述 |
---|---|
获取长连接Url列表 | getUrl |
设置长连接模式 | setRelayType |
创建长连接 | createLink |
销毁长连接 | destroyLink |
销毁所有长连接 | destroyAllLink |
销毁所有长连接 | getClientMap |
1. 概述
封装了与云端长连接的接口。需要校验用户登录信息,长连接以userid划分,支持single/share两种模式。 single模式每个用户只支持一个连接,当创建新的长连接时云端回自动关闭上一个连接。 share模式则每个用户可以最多支持10个连接(以云端文档为准)。 每当连接模式切换时,都会关闭之前已经创建的所有连接。
一般建议将连接的创建放到application中进行,这样连接在app运行期间都会存活。也可以在服务中创建连接,来尽量保证连接存活。
2. API 接口介绍
- 库集成,在项目的build.gradle中添加:
implementation 'com.ibroadlink:BLSWebSocketAndroid:1.0.2'
- 初始化,在Application中BLLet.init()获得lid后,初始化BLSProduct,注册用户登录回调。
// BLLet初始化
BLLet.init(this, license, "", blConfigParam);
// 初始化之后,获取lid
String lid = BLLet.getLicenseId();
// 初始化家庭管理接口, 如果使用集群服务,domain填null即可
BLSWebSocket.init(lid, domain);
// 添加登录成功回调函数
BLAccount.addLoginListener(BLSWebSocket.getLoginListener());
- 初始化方法
/**
* 初始化
*
* @param licenseId 证书
* @param domain 域名(可传空,默认使用appservice)
*/
public static BLSWebSocketImpl init(String licenseId, String domain)
/**
* 初始化
*
* @param licenseId 证书
* @param domain 域名(可传空,默认使用appservice)
* @param relayType #see {@link BLSWebSocketConstants.RELAY_TYPE}
* @return 实例
*/
public static BLSWebSocketImpl init(String licenseId, String domain, BLSWebSocketConstants.RELAY_TYPE relayType)
/**
* 初始化
*
* @param licenseId 证书
* @param domain 域名(可传空,默认使用appservice)
* @param relayType #see {@link BLSWebSocketConstants.RELAY_TYPE}
* @param httpTimeout http请求超时时间,默认10秒
* @return 实例
*/
public static BLSWebSocketImpl init(String licenseId, String domain, BLSWebSocketConstants.RELAY_TYPE relayType, int httpTimeout)
2.1 相关接口
2.1.1 获取长连接Url列表
/**
* 获取长连接url
*/
public static ResultWssUrl getUrl()
2.1.2 设置连接模式
/**
* 切换链接模式,支持single/share两种模式,默认为single模式。
* 注: 每次切换都会close原来的所有链接
*
* @param relayType
* #see {@link BLSWebSocketConstants.RELAY_TYPE}
*/
public static void setRelayType(BLSWebSocketConstants.RELAY_TYPE relayType)
2.1.3 创建连接
/**
* 创建长连接
*
* @param url 长连接Url,从getUrl()接口返回的url列表中选择一个
* @param heartBeatTimeInMs 心跳间隔,小于等于零表示不发送,最低1000ms, 不传的话默认30秒
* @param callback 长连接回调,收发数据在这里实现
*/
public static BLSWebSocketClient createLink(@NonNull String url, int heartBeatTimeInMs, BLSWebSocketCallback callback)
/**
* 创建长连接
*
* @param url 长连接Url,从getUrl()接口返回的url列表中选择一个
* @param callback 长连接回调,收发数据在这里实现
*/
public static BLSWebSocketClient createLink(@NonNull String url, BLSWebSocketCallback callback)
public interface BLSWebSocketCallback {
// 连接初始化完毕的回调,用户发送数据要在init完成之后再发送
void onInit(ResultWssBase result);
// 接收从云端推送的数据
void onReceive(ResultWssBase result);
// 连接关闭时的回调
void onClose(String reason);
}
2.1.4 销毁连接
/**
* 销毁长连接
*
* @param hashCode 长连接实例的hashCode, createLink()接口会返回实例
*/
public static void destroyLink(@NonNull int hashCode)
2.1.5 销毁所有连接
/**
* 销毁所有长连接
*/
public static void destroyAllLink()
2.1.6 获取所有连接
/**
* 获取所有长连接
*/
public static Map<Integer, BLSWebSocketClient> getAllLink()