如何#解决方案#群聊(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
如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题,布布扣,bubuko.com
时间: 2024-10-23 14:14:25