欧美日韩专区-欧美日韩中文一区二区三区-欧美日韩中文一区-欧美日韩中文国产一区二区三区-日韩成人在线免费视频

1、聊天室接口開發(fā)說(shuō)明

從v5.3.2開始、sdk增加直播聊天室功能、推出直播領(lǐng)域消息解決方案。

聊天室跟普通的IM群(微信群,QQ群等)相比最大的不同點(diǎn)在于它是一個(gè)比較開放的虛擬組織。我們可以將直播聊天室比喻成一個(gè)廣場(chǎng),廣場(chǎng)是開放無(wú)邊界的,所有的人都可以隨進(jìn)隨出,而群就像一個(gè)房間,是一個(gè)有邊界有容量上限的私密組織,并且進(jìn)入這個(gè)房間需要一定條件,一般是主動(dòng)申請(qǐng)加入或被邀請(qǐng)加入。

1.1、相關(guān)接口:

直播sdk相關(guān)接口分2大類別:

1.1.1 后臺(tái)Rest提供接口。具體參考文檔地址://www.fsoutstanding.cn/doc/sdk/server/2_5_1_8.html

(1) 創(chuàng)建聊天室,參考demo中的CreateRoomUI 類。

(2) 切換聊天室狀態(tài)(開啟/關(guān)閉),參考demo中的ECLIveChatRoomListUI 類。

1.1.2 SDK接口文檔(本頁(yè)面提供)

安卓sdk內(nèi)部提供的接口: 進(jìn)入聊天室、聊天室內(nèi)發(fā)送消息、獲取聊天室信息、獲取聊天室成員列表、獲取成員信息、對(duì)成員進(jìn)行禁言/拉黑、踢出、修改個(gè)人信息、修改聊天室信息、退出聊天室等接口。

1.2、直播聊天室三種成員角色:創(chuàng)建者(權(quán)限最高)>管理員>普通成員(權(quán)限高的能對(duì)權(quán)限低的做相應(yīng)處理)。

(1) 創(chuàng)建者:可以對(duì)所有成員進(jìn)行管理,包括禁言/解除禁言/拉黑/從黑名單移除/踢出/修改聊天室信息。

(2) 管理員:只能對(duì)成員進(jìn)行管理,禁言/解除禁言/拉黑/從黑名單移除/踢出。

(3) 普通成員:無(wú)權(quán)限

2、聊天室操作代碼示例:

? 進(jìn)入聊天室 — 用戶要在聊天室內(nèi)說(shuō)話,必須先調(diào)用接口進(jìn)入此聊天室,之后便可以進(jìn)行溝通。代碼如下:

	/**構(gòu)建進(jìn)入聊天室透?jìng)餍畔?duì)象、設(shè)置昵稱與透?jìng)餍畔?、別的用戶可以通過(guò)調(diào)用查詢聊天室成員信息接口進(jìn)行獲取*/
        ECLiveChatRoomMemberInfoBuilder infoBuilder = 
			new ECLiveChatRoomMemberInfoBuilder(CCPAppManager.getUserId(),
					CCPAppManager.getUserId()+":infoext");					
         ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();		 
         if(roomManager==null){
             return;
         }
         roomManager.joinLiveChatRoom(room.roomId, infoBuilder, SDKCoreHelper.buildNotify(), 
					new ECLiveCallBack.OnEnterLiveChatRoomListener() {
             @Override
             public void onEnterResult(ECError error, ECLiveChatRoom liveChatRoom,
						ECLiveChatRoomMember member) {
                 if (error.errorCode == SdkErrorCode.REQUEST_SUCCESS) {
                    //進(jìn)入房間成功
                   // do 業(yè)務(wù)邏輯    
                 } else {
                     //進(jìn)入房間失敗
                  // do 業(yè)務(wù)邏輯
                 }
             }
         });
                    

? 聊天室內(nèi)發(fā)送消息 — 目前只支持發(fā)送文本消息,其他消息暫不支持,用戶如果想發(fā)送其他消息,可以用userdata發(fā)送自定義消息。代碼如下:

					
ECMessage msg = ECMessage.createECMessage(ECMessage.Type.TXT);
// 創(chuàng)建一個(gè)文本消息體,并添加到消息對(duì)象中
ECTextMessageBody msgBody = new ECTextMessageBody(text.toString());
msg.setBody(msgBody);

	ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
        if(roomManager==null){
            return;
        }
     roomManager.sendLiveChatRoomMessage(msg, new OnSendLiveChatRoomMessageListener() {
            @Override
            public void onSendResult(ECError error, ECMessage message){
                if (error.errorCode == SdkErrorCode.REQUEST_SUCCESS){                   
                }
            }
        });
                    

? 獲取聊天室信息 — 通過(guò)查詢聊天室信息、獲取當(dāng)前在線人數(shù)、聊天室名稱等信息用于界面UI展示。代碼如下:


ECLiveChatRoomManager roomManager =  ECDevice.getECLiveChatRoomManager();
        if(roomManager==null){
            return;
        }
    roomManager.queryLiveChatRoomInfo(房間id, new ECLiveCallBack.OnQueryLiveChatRoomInfoListener() {
            @Override
            public void onQueryLiveChatRoom(ECError error, ECLiveChatRoom liveChatRoom) {
                if (error.errorCode == SdkErrorCode.REQUEST_SUCCESS) {
                             //查詢成功
                   } else {
                           //查詢失敗
                          }
				   }
              });			
                

? 修改聊天室信息 — 創(chuàng)建者可以修改當(dāng)前聊天室的展示信息。代碼如下:

		//構(gòu)建修改聊天室對(duì)象        
        ECLiveChatRoomModifyBuilder builder = new ECLiveChatRoomModifyBuilder(聊天室id,
		 聊天室昵稱, 聊天室描述, 聊天室透?jìng)髡故拘畔? 聲音模式);
        ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
        if(roomManager==null)
		{
            return;
        }
        ECLiveNotifyWrapper notifyWrapper = new ECLiveNotifyWrapper(設(shè)置通知透?jìng)餍畔? 是否通知其他人);
        roomManager.modifyLiveChatRoomInfo(builder, notifyWrapper, 
			new ECLiveCallBack.OnUpdateLiveChatRoomListener() {
            @Override
            public void onResult(ECError ecError) {
                }
        });
				
                

? 獲取聊天室成員列表 — 此接口可以遠(yuǎn)程獲取聊天室成員列表,SDK不會(huì)緩存聊天室成員列表和查詢單個(gè)成員信息,開發(fā)者需要根據(jù)業(yè)務(wù)自己做好緩存。代碼如下:

 ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
                        if(roomManager==null){
                            return;
                        }
ECLiveSearchMembersConditionBuilder builder = new ECLiveSearchMembersConditionBuilder(room.roomId,"", 
					ECLiveEnums.ECRole.ECRole_CREATE,10);
   roomManager.queryLiveChatRoomMembers(builder,new ECLiveCallBack.OnQueryLiveChatRoomMembersListener(){
            @Override
            public void onQueryResult(ECError error, ArrayList list){
                if(error.errorCode==SdkErrorCode.REQUEST_SUCCESS){
                    }else{
                }
            }
        });
    }
				
                

? 獲取成員信息 — 當(dāng)用戶需要查看自己或者其他成員信息時(shí),可以調(diào)用此接口,訪問(wèn)其他人的信息。代碼如下:

ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
                        if(roomManager==null){
                            return;
                        }
roomManager.queryLiveChatRoomMember(room.roomId, member.userId, 
				new ECLiveCallBack.OnQuerySingleLiveChatRoomMembersListener() {
            @Override
            public void onQueryResult(ECError error, ECLiveChatRoomMember member){
            }
        });
                

? 修改個(gè)人信息 — 在當(dāng)前聊天室房間中設(shè)置昵稱、透?jìng)餍畔?。代碼如下:

ECLiveChatRoomMemberInfoBuilder modifySelfInfo = new ECLiveChatRoomMemberInfoBuilder(昵稱,透?jìng)餍畔?;
                   ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
                    if(roomManager==null){
                        return;
                    }
                    roomManager.modifyLiveChatRoomSelfInfo(聊天室id, modifySelfInfo, 
					new ECLiveCallBack.OnUpdateSelfInfoListener() {
                             @Override
                             public void onResult(ECError error) {
                    if (error.errorCode == SdkErrorCode.REQUEST_SUCCESS) {
                          // do 業(yè)務(wù)邏輯    
                     } else {
                         // do 業(yè)務(wù)邏輯
                            }
                     }
                   });
                

? 對(duì)聊天室成員進(jìn)行禁言/解除禁言 — 創(chuàng)建者、管理員可以對(duì)成員進(jìn)行禁言/解除禁言/加入黑名單/從黑名單移除處理。代碼如下:

	ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
        if(roomManager==null){
            return;
        }
ECLiveControlOption option = new ECLiveControlOption(時(shí)長(zhǎng)[在禁言狀態(tài)有效],state);
roomManager.forbidLiveChatRoomMember(room.roomId, userId, option, wrapper,
			new ECLiveCallBack.OnControlMemberStateListener() {
                           @Override
                            public void onResult(ECError ecError) {								
                                }
                        });
                

? 拉黑/移除黑名單 — 角色權(quán)限高的用戶可以對(duì)角色權(quán)限低的用戶設(shè)置拉黑狀態(tài),設(shè)置拉黑后的用戶將不能發(fā)送消息,不能接收消息,并且若被移除聊天室,被拉黑的用戶將不能加入此房間。代碼如下:

	ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
        if(roomManager==null){
            return;
        }
  roomManager.dfriendLiveChatRoomMember(room.roomId, userId, 拉黑/移除黑名單, 
					wrapper, new ECLiveCallBack.OnControlMemberStateListener() {
                            @Override
                            public void onResult(ECError ecError) {
                                if (ecError.errorCode == SdkErrorCode.REQUEST_SUCCESS) {                                    
                                }
                             }
                        });
                

? 踢出 — 創(chuàng)建者/管理員可以將成員從該聊天室中踢出。代碼如下:

 ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
                        if(roomManager==null){
                            return;
                        }
             ECLiveNotifyWrapper notifyWrapper = new ECLiveNotifyWrapper(設(shè)置通知透?jìng)餍畔? 是否通知其他人);
             roomManager.kickLiveChatRoomMember(聊天室id, 被踢的成員userid, 
		notifyWrapper, new ECLiveCallBack.OnLiveChatRoomKickMemberListener() {
                            @Override
                            public void onResult(ECError ecError) {

                               }
                        });
                

? 退出聊天室 — 用戶主動(dòng)退出聊天室,調(diào)用此接口。代碼如下:

	ECLiveChatRoomManager roomManager = ECDevice.getECLiveChatRoomManager();
        if(roomManager==null){
            return;
         }
ECLiveNotifyWrapper notifyWrapper = new ECLiveNotifyWrapper(設(shè)置通知透?jìng)餍畔? 是否通知其他人);
        roomManager.exitLiveChatRoom(room.roomId, notifyWrapper,
						new ECLiveCallBack.OnExitLiveChatRoomListener() {

            @Override
            public void onResult(ECError ecError) {
                if (ecError.errorCode == SdkErrorCode.REQUEST_SUCCESS) {
                    } else {
                }
         }
        });
                

? 接收聊天室消息及通知接口 — 當(dāng)用戶加入,退出,被禁言,被踢出,被拉黑,變更角色等,聊天室內(nèi)的成員都會(huì)收到通知消息。

public interface OnLiveChatRoomListener{
    /**
     * 接收聊天室消息
     * @param message
     */
    void OnReceiveLiveChatRoomMessage(ECMessage message);
    /**
     * 接收聊天室通知消息
     * @param notice
     */
    void OnReceiveLiveChatRoomNotification(ECLiveChatRoomNotification notice);
    ///**通知類型*/ 根據(jù)type獲取不同的通知類型
    //public ECLiveEnums.ECNoticeType noticeType;	
}
                

文檔更新時(shí)間:2017年7月10日

主站蜘蛛池模板: 国内精品久久久久久 | 羞羞在线| 一区免费在线观看 | 成人午夜性视频欧美成人 | www.wuyue| 亚洲精品第一综合99久久 | 一本综合久久 | 天堂精品在线 | 亚洲视频成人 | 久久久国产精品免费视频 | 亚洲国产精品久久久久网站 | 国产成人不卡 | 羞羞视频免费网站在线看 | 黄色一级片免费网站 | 羞羞动漫入口 | 久久综合五月天婷婷伊人 | 九九导航 | 久久国产精品男女热播 | 性v天堂 | 羞羞网站视频 | 国产精品成人一区二区1 | 中日韩一区二区三区 | 四虎影院最新网站 | 自拍 亚洲 欧美 | 五月欧美激激激综合网色播 | 精品久久久久亚洲 | 亚洲欧美中日韩中文字幕 | 日韩欧美高清视频 | 日本波多野结衣在线观看 | 亚洲国产天堂久久综合9999 | 亚洲欧美在线观看首页 | 在线免费观看亚洲视频 | 伊人网综合 | 国产a久久精品一区二区三区 | 婷婷六月久久综合丁香可观看 | 亚洲男人天堂久久 | 亚洲国产天堂久久综合9999 | 午夜在线亚洲 | 西西午夜影院 | 最近在线观看免费完整视频 | 亚洲成人一级电影 |