====== 聊天室管理 ====== ---- 环信聊天室模型支持最大成员数为5000,和群组不同,聊天室内成员离线后,服务器当监听到此成员不在线后不再会给此成员再发推送。 * 支持最大成员5000; * 环信的聊天室内仅有 owner 和游客; * 不支持客户端建立聊天室; * 不支持客户端邀请; * 不支持 REST 邀请。 ===== 服务器端 ===== ==== 创建聊天室 ==== curl -X POST “http://a1.easemob.com/easemob-demo/chatdemoui/chatrooms” -H “Authorization: Bearer ${token}” -d ‘{“owner”:”u1”,”members”:[“u1”,”u2”],”maxusers”:5000,”groupname”:”chatroom title”,”desc”:”chatroom description”}” ==== 查询所有 APP 聊天室 ==== curl -X GET “http://a1.easemob.com/easemob-demo/chatdemoui/chatrooms” -H “Authorization: Bearer ${token}” ==== 查询聊天室详情 ==== curl -X GET “http://a1.easemob.com/easemob-demo/chatdemoui/chatrooms/1430798028680235” -H “Authorization: Bearer ${token}” ==== 聊天室踢人 ==== curl -X DELETE ‘https://a1.easemob.com/easemob-demo/chatdemoui/chatrooms/1430798028680235/users/u2’ -H “Authorization: Bearer ${token}” ==== 删除聊天室 ==== curl -X DELETE ‘https://a1.easemob.com/easemob-demo/chatdemoui/chatrooms/143228117786605’ -H “Authorization: Bearer ${token}” 更多服务器端 REST 操作请参考[[im:100serverintegration:70chatroommgmt|聊天室管理]]。 ===== 客户端 ===== * 支持查询所有 APP 聊天室; * 支持查询聊天室详情; * 加入聊天室; * 退出聊天室; ==== 加入聊天室 ==== //id为聊天室ID EMError error; string id = getStringAttrFromJson(json, "id"); if (!id.empty()) { g_client->getChatroomManager().joinChatroom(id, error); if (error.mErrorCode != EMError::EM_NO_ERROR) { callback->Failure(error.mErrorCode, error.mDescription); } else { callback->Success(id); } } **注意:**对于聊天室模型,请一定要等到 Join 回调成功后再去初始化 conversation。 ==== 离开聊天室 ==== EMError error; string id = getStringAttrFromJson(json, "id"); if (!id.empty()) { g_client->getChatroomManager().leaveChatroom(id, error); if (error.mErrorCode != EMError::EM_NO_ERROR) { callback->Failure(error.mErrorCode, error.mDescription); } else { callback->Success(id); } } ==== 获取聊天室列表 ==== EMError error; EMChatroomList roomList = g_client->getChatroomManager().fetchAllChatrooms(error); string ret; if (error.mErrorCode == EMError::EM_NO_ERROR) { for (EMChatroomPtr room : roomList) { ret += "{\"owner\":\""; ret += room->owner(); ret += "\",\"name\":\""; ret += room->chatroomSubject(); ret += "\",\"id\":\""; ret += room->chatroomId(); ret += "\",\"affiliations_count\":"; ret += "5"; ret += "},"; } if (!ret.empty()) { string tmp = ret.substr(0, ret.length() - 1); ret = "[" + tmp + "]"; } callback->Success(ret); } else { callback->Failure(error.mErrorCode, error.mDescription); } ---- 上一页:[[im:windowssdk:group|群组管理]] 下一页:[[im:windowssdk:releasenote|Windows SDK更新日志]]