注册

进入聊天群的时候,旧消息和新消息会一起发送回来是怎么回事?

1.如题,我自己封装了一个消息发送和接收的单例工具类,用于发送消息和接收消息的,
这个工具类继承了 ,并且实现了下面这个方法。
- (void)messagesDidReceive:(NSArray *)aMessage {};
因为我们这边的需求是,用户同时只能在一个群中进行语音聊天的.所以每次请求进入一个新群之前,都会先从旧群退出(客户端不操作退群方法,是管理员直接把用户从旧群里面踢出).
这时候,用户自群里有人发消息的时候, - (void)messagesDidReceive:(NSArray *)aMessages{} ;这个方法会把旧消息也一起发送回来了,请问这个是什么回事呢?  有人知道吗?
 
2.另外,环信那个自动下载消息附件的可以主动不让它默认下载吗?
因为我们的设计是不发送文字的,只发送语音消息,消息送达,我主动调用方法去下载,下载完了就直接播放出来给用户听的
 
知道的朋友麻烦分享一下,感激不尽!!!!  本人Q462316190,可以直接私聊告诉一下答案,如果我自己解决了,我也会分享答案在贴下。谢谢各位!
已邀请:

prf - 90后IT

找到解决方法了
环信的SDK初始化时,需要设置一个参数>>
EMOptions *options = [EMOptions optionsWithAppkey:@"yourkey"];
[[EMClient sharedClient] initializeSDKWithOptions:options];
这个options参数里面有一个属性 >>  sDeleteMessagesWhenExitGroup 只要把它设置为 NO (默认是YES)就可以
options.isDeleteMessagesWhenExitGroup = NO;
 
理解: options.isDeleteMessagesWhenExitGroup参数会影响到一个用户从一个群里离开(这里的离开是不再是这个群的成员的意思)以后,会不会删除沙河中专门用于存放这个群对话的文件夹;
如果options.isDeleteMessagesWhenExitGroup = YES.
则一个用户离开一个群后,沙盒中对应的文件夹会被删除,当再次创建这个对话的时候,会创建一个同样的文件夹,同时有一定的可能性在接收消息的时候,把旧消息也发送回来了(在我测试的过程中不是每次都发生,而且发生的规律不可寻)。
 
 
 

要回复问题请先登录注册