XMPP群聊消息重复,自己收到自己发出的消息,群警告消息如何屏蔽
2017-07-06 10:18
351 查看
在XMPP的"groupchat"中,创建群的时候会收到群发的"This room is locked from entry until configuration is confirmed."和"This room is now unlocked."警告,并且每次进群的时候都会收到"This room is not anonymous."警告,而且自己向群发的消息,每次群还会发回给我,看起来就像自己发给自己,造成消息重复。这些问题怎么解决?(问题截图如下)
实际上这些消息其他人也碰到过,群聊的时候会有各种配置项,如果不写配置,默认创建的是Instant room。群聊的时候,自己发给群一条消息,群会帮你广播给群里所有人,所以你收到自己发出的消息也是正常现象。如果你不想收到上述所有的警告,你需要修改"/XMPPFramework的/XMPPFramework/Extenstions/XEP-0136/XMPPMessageArchiving.m"这个路径的框架原文件。(红色的是修改添加的代码)。
改善后的截图如下:
参考链接:
http://www.tuicool.com/articles/ZrIrIn3
http://wiki.jabbercn.org/XEP-0045#.E6.96.B0.E5.BB.BA.E4.BF.9D.E7.95.99.E6.88.BF.E9.97.B4
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1d9421 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c91b13 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1d9421 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { }
实际上这些消息其他人也碰到过,群聊的时候会有各种配置项,如果不写配置,默认创建的是Instant room。群聊的时候,自己发给群一条消息,群会帮你广播给群里所有人,所以你收到自己发出的消息也是正常现象。如果你不想收到上述所有的警告,你需要修改"/XMPPFramework的/XMPPFramework/Extenstions/XEP-0136/XMPPMessageArchiving.m"这个路径的框架原文件。(红色的是修改添加的代码)。
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message { XMPPLogTrace(); XMPPJID *jid = message.from; NSString *str = jid.resource; //发给自己的消息会忽略 if ([str isEqualToString:kGlobal.userInfo.sApplyName]) { return; } //群发的警告会忽略 This room is not anonymous. if (message.childCount>=2) { DDXMLElement *element = message.children[1]; if (element.childCount>0) { DDXMLElement *subChild = element.children[0]; if (subChild.attributes.count>0) { DDXMLNode *statusNode = subChild.attributes[0]; if ([statusNode.name isEqualToString:@"code"]&&[statusNode.stringValue isEqualToString:@"100"]) { return; } } } } //忽略群发警告 This room is locked from entry until configuration is confirmed. if ([message.body isEqualToString:@"This room is locked from entry until configuration is confirmed."]) { return; } //忽略群发警告 This room is now unlocked. if ([message.body isEqualToString:@"This room is now unlocked."]) { return; } if ([self shouldArchiveMessage:message outgoing:NO xmppStream:sender]) { [xmppMessageArchivingStorage archiveMessage:message outgoing:NO xmppStream:sender]; } }
改善后的截图如下:
参考链接:
http://www.tuicool.com/articles/ZrIrIn3
http://wiki.jabbercn.org/XEP-0045#.E6.96.B0.E5.BB.BA.E4.BF.9D.E7.95.99.E6.88.BF.E9.97.B4
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1d9421 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c91b13 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1d9421 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { }
相关文章推荐
- 如何让自己的应用程序,控制台程序,windows 服务收到操作系统注销或者重启的消息
- 如何屏蔽pocketpc 长按触笔时,发出的菜单消息
- Tips: 如何让自己的应用程序,控制台程序,windows 服务收到操作系统注销或者重启的消息?
- 如果要重复的间隔一段固定的时间做同一件事, 如何提醒自己来做这机械的事呢?
- 发现Windows程序 最主要的还是要理解消息和窗口的相互调用,相互影响是如何实现的,才能更准确的去理解Windows程序,去编好自己想要的程序功能
- 如何屏蔽掉乱码的push消息
- 【发现】如何屏蔽掉WebBrowser在刷新网页等时候发出的声音
- 若要调试此模块,请将其项目生成配置更改为“调试”模式。若要取消显示此消息,请禁用“启动时若没有用户代码则发出警告”调试器选项。
- 如何避免自己发出的邮件被误判为垃圾邮件
- WPF的WebBrowser控件打开flash,如何屏蔽警告信息
- Internet Explorer 7 连接到安全网站时收到警告消息
- MFC中窗口收到WM_PAINT消息是如何处理的,什么情况下产生WM_PAINT消息
- 暴牛的qq等待消息,顺便也来说说自己的,如何?
- IIS错误响应消息以及如何屏蔽
- 在Xcode中如何屏蔽某个源文件的编译警告信息
- 电脑提示内存不足,发出警告如何解决?
- 若要调试此模块,请将其项目生成配置更改为“调试”模式。若要取消显示此消息,请禁用"启动时若没有用户代码则发出警告"调试器选项。
- 如何在MFC里写自己的自定义消息
- 如何在C#.Net中获取、屏蔽鼠标键盘消息?
- Xcode中如何屏蔽某个源文件的编译警告信息