DYRealTimeSDK
简介
DYRealTimeSDK(实时音视频SDK)
本SDK封装了多厂商的音视频SDK
和相应的即时通讯SDK
- 简化和统一了各厂商服务注册和接口调用方式
- 支持在各厂商SDK之间安全、高效地调度(目前支持声网、腾讯)
- 多条通道并行发送自定义消息和消息去重
- 封装了日志模块(厂商日志,自定义日志,DDLog),用于数据追踪和后续分析
- 解决多SDK引入和编译问题
集成的SDK列表:
- MQTT(MQTT SDK)- 常驻
- TIM(腾讯即时通讯SDK)- 常驻
- TXLiteAVSDK_TRTC(腾讯音视频SDK)
- AgoraRtcEngine_iOS(声网音视频SDK)
- AgoraSignal(声网即时通讯SDK)
- 日志模块(基于
CocoaLumberjack/Swift
)
Carthage引入
- 业务路径新建
Cartfile
,编辑
git "https://github.com/jackleemeta/DYEntireRealTimeSDK.git" >= 0.0.1
需要手动引入MQTT等依赖库
CocoaPods 引入(推荐)
引入
- 编辑podfile,添加source
source 'https://cdn.cocoapods.org'
- 依赖方式(任选其一)
- 框架依赖(推荐)
pod 'DYEntireRealTimeSDK'
或
pod 'DYEntireRealTimeSDK/Framework'
- 源码依赖
pod 'DYEntireRealTimeSDK/Source'
- 注意:pod install优先本地缓存
使用
-
导入
- 框架依赖方式 - 导入:DYRealTimeSDK
- 源码依赖 - 导入:DYEntireRealTimeSDK
-
Init
var auth = DYRealTimeSDKAuthenticationConfig()
var setting = DYRealTimeSettingConfig()
var user = DYRealTimeSDKUserConfig()
var mqttConfig = DYRealTimeSettingConfig.DYMQTTConfig()
setting.mqttConfig = mqttConfig
realTimeSDK = DYRealTimeSDK(sdk: .agora,
authenticationConfig: auth,
settingConfig: setting,
userConfig: user,
delegate: self)
- engine
realTimeSDK?.engine()
- 注册协议
extension Registrant: DYRealTimeSDKProtocol {}
- 发送消息
realTimeSDK?.sendMessage(msgId: msgId, msg: msg, receiverIds: [receiverId], topic: topic)
- 切换SDK
realTimeSDK?.switch(to: sdk,
with: auth,
switchedCallBack: { isSuccess in
if !isSuccess { return }
//code
})
- 切换房间
realTimeSDK?.switch(to: user,
switchedCallBack: { isSuccess in
if !isSuccess { return }
//code
})
- SDK主动销毁
- 统一处理:
- mqtt断开连接
- TIM登出
- 各个模式下的处理
声网模式:
AgoraRtcEngine_iOS登出、销毁SDK
AgoraSignalSDK登出、销毁SDK
或
腾讯模式:
TRTC登出、销毁SDK
realTimeSDK?.destroy(callBack:)
- 设置SDK日志路径
DYRealTimeSDK.setLogFilePath(path)
- 获取SDK日志Logger - DDFileLogger
DYRealTimeSDK.ddFileLogger
- 获取【子SDK - Agora】日志路径
DYRealTimeSDK.sortedAgoraLogFileInfos
- 获取【子SDK - TRTC】日志路径
DYRealTimeSDK.sortedTRTCLogFileInfos
当前三方音视频SDK版本
- AgoraRtcEngine_iOS(2.3.4.108)
- TXLiteAVSDK_TRTC(7.2.8961)