码迷,mamicode.com
首页 > 其他好文 > 详细

如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题

时间:2014-06-05 14:09:15      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:des   c   style   class   blog   a   

如何#解决方案#群聊(MUC)聊天室重复存储、接收自己发送的消


 
编号 项目 描述
1 问题描述
  1. 单聊没问题,群聊会出现自动回复的问题
  2. 数据库中存储的数据出现的问题bubuko.com,布布扣
  3. 界面上出现的问题:类似自动回复。回音壁一样一模一样地回答。
 2 问题产生的原因
bubuko.com,布布扣
3 群聊基本的原理示意图 bubuko.com,布布扣


聊天内容的显示是经由从数据库进行的读取排序,
4 #解决方案# 拦截阻挡红色区域的执行
bubuko.com,布布扣

 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];
}
}

如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题,布布扣,bubuko.com

如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题

标签:des   c   style   class   blog   a   

原文地址:http://www.cnblogs.com/ChenYilong/p/3769108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!