聊天室消息

5.1 聊天室创建

创建CChatroomManager对象
添加回调函数指针
添加获取聊天室列表回调函数指针

对象所属类需要实现IChatroomManagerListener接口和IChatroomGetListListener接口
XHChatroomManager::addChatroomGetListListener(this);
m_pChatroomManager = new XHChatroomManager(this);

5.2 聊天室列表说明

无AEC使用方法

/*
* 获取聊天室列表
*/
void getChatroomList()
{
XHChatroomManager::getChatroomList("", CHATROOM_LIST_TYPE_CHATROOM);
}
调用该方法后会相应chatroomQueryAllListOK回调函数
/*
* 保存聊天室
*/
string strInfo = "{\"id\":\"";
strInfo += strRoomId;
strInfo += "\",\"creator\":\"";
strInfo += m_pUserManager->m_ServiceParam.m_strUserId;
strInfo += "\",\"name\":\"";
strInfo += dlg.m_strRoomName.GetBuffer(0);
strInfo += "\"}";
m_pChatroomManager->saveToList(m_pUserManager->m_ServiceParam.m_strUserId, CHATROOM_LIST_TYPE_CHATROOM, strRoomId, strInfo);

/*
* 删除聊天室
*/
m_pChatroomManager->deleteChatRoom(dlg.m_strContent.GetBuffer(0));

AEC使用方法

/*
* 获取聊天室列表
*/
void getChatroomList()
{
list<ChatroomInfo> listData;
CInterfaceUrls::demoRequestChatroomList(listData, m_pUserManager);
chatroomQueryAllListOK(listData);
}

/*
* 保存聊天室
*/
string strInfo = "{\"id\":\"";
strInfo += strRoomId;
strInfo += "\",\"creator\":\"";
strInfo += m_pUserManager->m_ServiceParam.m_strUserId;
strInfo += "\",\"name\":\"";
strInfo += dlg.m_strRoomName.GetBuffer(0);
strInfo += "\"}";
CInterfaceUrls::demoSaveToList(m_pUserManager->m_ServiceParam.m_strUserId, CHATROOM_LIST_TYPE_CHATROOM, strRoomId, strInfo);

/*
* 删除聊天室
*/
CInterfaceUrls::demoDeleteFromList(m_pUserManager->m_ServiceParam.m_strUserId, CHATROOM_LIST_TYPE_CHATROOM, dlg.m_strContent.GetBuffer(0));

5.3 回调函数说明


/**
* 查询聊天室列表回调
* @param 聊天室列表
*/
virtual int chatroomQueryAllListOK(list<ChatroomInfo>& listData);
/**
* 聊天室成员数变化
* @param number 个数
*/
virtual void onMembersUpdated(int number);

/**
* 自己被踢出聊天室
*/
virtual void onSelfKicked();

/**
* 自己被踢出聊天室
*/
virtual void onSelfMuted(int seconds);

/**
* 聊天室已关闭
*/
virtual void onClosed();

/**
* 收到消息
* @param message 消息内容
*/
virtual void onReceivedMessage(CIMMessage* pMessage);

/**
* 收到私信消息
* @param message 消息内容
*/
virtual void onReceivePrivateMessage(CIMMessage* pMessage);

5.4 CChatroomManager API 说明


/*
* 添加获取列表后回调函数指针
* @param pChatroomGetListListener 回调函数指针
*/
static void addChatroomGetListListener(IChatroomGetListListener* pChatroomGetListListener);

/*
* 获取聊天室列表
* @param pUserManager 用户信息
* @param listType 类型
*/
static void getChatroomList(string strUserId, int listType);

/*
* 创建ChatRoom
* @param strName 名字
* @param chatroomType 类型
* @return chatroom id
*/
string createChatRoom(string strName, int chatroomType);

/**
* 删除聊天室
* @param strChatroomId 删除的聊天室ID
*/
bool deleteChatRoom(string strRoomId);

/**
* 加入聊天室
* @param strChatroomId 要加入的聊天室ID
*/
bool joinChatRoom(string strChatroomId);

/**
* 退出聊天室
* @param strChatroomId 要退出的聊天室ID
*/
bool exitChatroom(string strChatroomId);

/**
* 禁言聊天室内的用户
* @param strChatroomId 所在聊天室ID
* @param strMemberId 被禁言的用户ID
* @param muteSeconds 禁言时长(单位:秒)
*/
bool muteMember(string strChatroomId, string strMemberId, int muteSeconds);

/**
* 解除用户的禁言
* @param chatroomID 所在聊天室ID
* @param memberID 解除禁言的用户ID
*/
bool unMuteMember(string strChatroomId, string strMemberId);

/**
* 从聊天室踢出用户
* @param chatroomID 所在聊天室ID
* @param memberID 踢出的用户ID
*/
bool kickMember(string chatroomID, string memberID);

/*
* 发送消息
* @param strMsg 消息内容
*/
CIMMessage* sendMessage(string strMsg);

/*
* 发送私信
* @param toUserId 对方userId
* @param msgData 消息内容
*/
CIMMessage* sendPrivateChat(string toUserId, char* msgData);

/**(仅限私有部署时使用)
* 保存到列表
* @param userId 用户Id
* @param type 列表类型
* @param chatroomId
* @param data
*/
bool saveToList(string userId, int type, string chatroomId, string data);

/**
* 从列表删除
* @param userId 用户Id
* @param chatroomId 聊天室ID
*/
void deleteFromList(string userId, int type, string chatroomId);
/*
* 查询chatroom在线人数
*/
bool getOnlineNumber(string strChatroomId);

/**
* 获取当前Chatroom id
* @return Chatroom id
*/
string getChatroomId();