直播 App 有時(shí)需要展示當(dāng)前用戶列表。單個(gè) AVChatRoom 本身支持的用戶數(shù)量無(wú)上限,但是只能夠獲取到部分群成員列表,最多為300個(gè)成員。
AVChatRoom 的人數(shù)統(tǒng)計(jì)并不是實(shí)時(shí)的,有1分鐘左右的時(shí)延。App 管理后臺(tái)通過(guò) REST API 接口獲取當(dāng)前群人數(shù)
云通信的消息原生支持文本、圖片、語(yǔ)音、表情等。如果 App 存在一些特殊的消息需求(例如點(diǎn)贊消息、紅包消息等),可以通過(guò)云通信的自定義消息實(shí)現(xiàn)。
AVChatRoom的缺點(diǎn)——為了更好支持大型直播,AVChatRoom 在一些次要功能點(diǎn)上做了讓步,包括只能拉取到部分成員列表(最多300人)、不能移除成員(可以通過(guò)禁言來(lái)實(shí)現(xiàn)近似目的)、不能邀請(qǐng)用戶入群(創(chuàng)建時(shí)也不能邀請(qǐng),只能由用戶主動(dòng)申請(qǐng)入群)、不能修改群成員資料、不能設(shè)置管理員、不能獲取完整成員列表、不能拉取歷史消息。
公開群/聊天室/互動(dòng)直播聊天室:后臺(tái)不會(huì)回收群組,除非群主解散,或者所有成員都退出群組
iOS殺掉進(jìn)程后,>90S,后臺(tái)自動(dòng)關(guān)閉房間
用戶加入 AVChatRoom 后,如果發(fā)生異常登出(logout)或者 App 進(jìn)程崩潰(crash)的情況,在重新上線(login)或者重啟 App 進(jìn)程后,需要再次調(diào)用申請(qǐng)加群才能繼續(xù)在原來(lái)的 AVChatRoom 中收發(fā)消息。
主要包括:ImSDK.framework、IMCore.framework、TLSSDK.framework、QALSDK.framework。各個(gè)包的說(shuō)明如下:
必選SDK:必須是一個(gè)版本成套使用,不同版本不可混用
* ImSDK.framework IM接口SDK
* QALSDK.framework 網(wǎng)絡(luò)SDK
* TLSSDK.framework 登錄SDK
可選SDK:
* IMCore.framework IM核心功能
* 如果使用IM聊天必須加入,如果只用登錄功能(如只使用音視頻的情況,可不加入)
* 如果不加入IMCore.framework,使用時(shí)需 #import "ImSDK/ImSDKSimple.h",不要包含其他頭文件,否則可能會(huì)引起編譯錯(cuò)誤
* IMSDKBugly.framework Crash上報(bào)功能
* 如無(wú)特殊需要,推薦使用,在控制臺(tái)頁(yè)面可以查看Crash率等信息
* 如果不加入此SDK,需要調(diào)用 [TIMManager sharedInstance] disableCrashReport]; 禁用功能
其他SDK:
* QALHttpSDK.framework 網(wǎng)絡(luò)透?jìng)鱏DK
* 只有用到網(wǎng)絡(luò)透?jìng)鞴δ軙r(shí)使用
消息:ImSDK中消息(Message)表示要發(fā)送給對(duì)方的內(nèi)容,消息包括若干屬性,如是否自己已讀,是否已經(jīng)發(fā)送成功,發(fā)送人帳號(hào),消息產(chǎn)生時(shí)間等;一條消息由若干Elem組合而成,每種Elem可以是文本、圖片、表情等等,消息支持多種Elem組合發(fā)送。
[holdView HandleMessageFromArray:allArray];
IMAConversation *conv = (IMAConversation *)_showItem;
IMAConversationManager
conversationMgr
onNewMessage
NSArray *conversationList = [[TIMManager sharedInstance] getConversationList];
/**
*? 獲取會(huì)話(TIMConversation*)列表
*
*? @return 會(huì)話列表
*/
-(NSArray*) getConversationList;
/**
*? 獲取會(huì)話
*
*? @param type 會(huì)話類型,TIM_C2C 表示單聊 TIM_GROUP 表示群聊
*? @param receiver C2C 為對(duì)方用戶 identifier, GROUP 為群組Id
*
*? @return 會(huì)話對(duì)象
*/
-(TIMConversation*) getConversation: (TIMConversationType)type receiver:(NSString *)receiver;