首页 > 代码库 > 如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题
如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题
CHENYILONG
如何#解决方案#群聊(MUC)聊天室重复存储、接收自己发送的消息
编号 | 项目 | 描述 |
1 | 问题描述 |
|
2 | 问题产生的原因 | |
3 | 群聊基本的原理示意图 | 聊天内容的显示是经由从数据库进行的读取排序, |
4 | #解决方案# | 拦截阻挡红色区域的执行 |
5 | 失败的尝试:尝试但是没有效果的方法 | // AppDelegate.m中 #pragma 接收消息代理监听方法 -(void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message { XMPPJID *jid = message.to; if([_xmppStream.myJID isEqualToJID:jid]){ return; } } |
6 | 正确修改的文件 | /Users/chenyilong/Desktop/平安校园IM0604/平安校园IM/Classes/Other/Lib/XMPP/Extensions/XEP-0136/XMPPMessageArchiving.m |
7 | 正确修改的代码 | - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message { XMPPLogTrace(); NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults]; NSString *userName = [defaultsstringForKey:@"userName"]; XMPPJID *jid = message.from; NSString *str = jid.resource; if([str isEqualToString:userName]){ return ; } if ([self shouldArchiveMessage:messageoutgoing:NO xmppStream:sender]) { [xmppMessageArchivingStoragearchiveMessage:message outgoing:NOxmppStream:sender]; } } |
? chenyilong. Powered by https://www.evernote.com/shard/s227/sh/5e3c15b8-2fb1-4b39-b802-7f4163577351/7fc3a0de07b5865d87dede64bbd625b8
- Blog
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。