聊天室管理


“聊天室”模型:

  1. 进入聊天页面之前,进行加入聊天室操作;
  2. 成功进入聊天室之后,服务器会自动给推 10 条消息;
  3. 离开聊天页面之后,进行退出聊天室操作;
  4. 聊天室创建者 Owner 可以进行退出聊天室操作;
  5. 支持最大成员 5000;
  6. 环信的聊天室内仅有 Owner 和游客;
  7. 不支持客户端建立聊天室;
  8. 不支持客户端邀请;
  9. 不支持 REST 邀请;
  10. 聊天室内成员离线后,服务器当监听到此成员不在线后不在会给此成员再发推送。

服务器端

客户端

获取聊天室

/*!
 *  从服务器获取所有的聊天室
 *
 *  同步方法,会阻塞当前线程
 *
 *  @param pError   出错信息
 *  @param pError   Error
 *
 *  @return 聊天室列表<EMChatroom>
 */
- (NSArray *)getAllChatroomsFromServerWithError:(EMError **)pError;

//调用:
//EMError *error = nil;
//NSArray *list = [[EMClient sharedClient].roomManager getAllChatroomsFromServerWithError:&error];

加入聊天室

/*!
 *  加入聊天室
 *
 *  同步方法,会阻塞当前线程
 *
 *  @param aChatroomId  聊天室的ID
 *  @param pError       错误信息
 *
 *  @result 所加入的聊天室
 */
- (EMChatroom *)joinChatroom:(NSString *)aChatroomId
                       error:(EMError **)pError; 

//调用:
//EMError *error = nil;
//EMChatroom *chatroom = [[EMClient sharedClient].roomManager joinChatroom:@"chatroomId" error:&error];                           

离开聊天室

/*!
 *  退出聊天室
 *
 *  同步方法,会阻塞当前线程
 *
 *  @param aChatroomId  聊天室ID
 *  @param pError       错误信息
 *
 *  @result 退出的聊天室,失败返回nil
 */
- (EMChatroom *)leaveChatroom:(NSString *)aChatroomId
                        error:(EMError **)pError;   

//调用:
//EMError *error = nil;
//[[EMClient sharedClient].roomManager leaveChatroom:@"chatroomId" error:&error];

聊天室相关的回调

注册聊天室回调

//注册聊天室回调
[[EMClient sharedClient].roomManager addDelegate:self delegateQueue:nil];
//移除聊天室回调
[[EMClient sharedClient].roomManager removeDelegate:self];
/*!
 *  接收到有用户加入聊天室
 *
 *  @param aChatroom    加入的聊天室
 *  @param aUsername    加入者username
 */
- (void)didReceiveUserJoinedChatroom:(EMChatroom *)aChatroom
                            username:(NSString *)aUsername;

/*!
 *  接收到有用户离开聊天室
 *
 *  @param aChatroom    离开的聊天室
 *  @param aUsername    离开者username
 */
- (void)didReceiveUserLeavedChatroom:(EMChatroom *)aChatroom
                            username:(NSString *)aUsername;

/*!
 *  接收到被踢出聊天室
 *
 *  @param aChatroom    被踢出的聊天室
 *  @param aReason      被踢出聊天室的原因
 */
- (void)didReceiveKickedFromChatroom:(EMChatroom *)aChatroom
                              reason:(EMChatroomBeKickedReason)aReason;

上一页:群组管理

下一页:实时通话