一. 初始化 腾讯即时通讯sdk
1. 程序日志注册
2. 连接通知回调 专门的类管理
3. 信息通知回调 专门的类
4. 初始化sdk
5. 注册推送 分ios8/ios以前
注册推送成功回调
发送devicetoken到腾讯服务器
注册推送失败回调
log
接收到推送
专门类负责
6. 即将注销活跃状态 resignActive
doBackgroud通知腾讯服务器
聊天控制器
tableview toobar navigationbar等界面
根据 接受identifier 获取 conversation
conversation获取指定数量的message, 把message打包成 各种类型的MyMsgModel, 并且加入MyMsgModel数组
tableview reload
###########################################################################
腾讯即时通讯的设计理念:
腾讯IM主要要使用的类是:
TIMConversation
TIMMessage
TIMManager
TIMGroupManager
回调方式支持2种: block和protocol, 可任选一种
其实这个即时通讯框架具备了 操作日志 和本地数据库 功能, 但是却把这两者封装起来, 开发人员用的时候完全不用考虑本地数据库和日志操作
通讯方式:
1. iphone客户端1 -> 发送消息
2. 腾讯服务器接收消息, 并存入服务器数据库, 转发消息 到iphone客户端2
3. -> iphone客户端2 接收到消息, 存入本地数据库
####################
获取文件/图片等比较大的文件时, 并没有把图片立即发到客户端, 而是使用 protocol/block 再次获取
####################
猜想数据库结构大致是:
消息记录表
消息记录ID 腾讯用户_发送方_ID 腾讯用户_接收方_ID 是否发送方 会话ID 记录内容 附件 创建时间 最后修改时间
会话记录表
绘画记录ID 会话类型 会话_成员表ID
会话_成员表
会话_成员ID 成员ID
TIManager则是管理数据库和表的创建和开启/修改
音视频聊天SDK
2.1.常用到的类
AVContext (上下文)
方法:
CreateContext() StartContext() StopContext() DestoryContext()
CreateRoom() EnterRoom() GetRoom() ExitRoom()
getAudioDeviceMgr() getVideoDeviceMgr()
AVRoom (房间)
枚举类型: AVRoomPair AVRoomMulti
委托: AVRoomDelegate AVRoomPairDelegate AVRoomMultiDelegate
AVEndPoint (用户/终端)
AVDevice (设备)
AVAudioDevice (音频设备)
AVVedioDevice (视频设备)
AVRemoteVedioDevice (远程视频设备)
AVCameraDevice (摄像头设备)
AVDeviceMgr (设备管理器)
AVVideoCtrl (视频控制)
AVAudioCtrl (音频控制)
GetVolume()、SetVolume()、GetDynamicVolume()