XMPP群聊消息重复,自己收到自己发出的消息,群警告消息如何屏蔽
在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"这个路径的框架原文件。(红色的是修改添加的代码)。
- (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
XMPP群聊消息重复,自己收到自己发出的消息,群警告消息如何屏蔽的更多相关文章
- RabbitMQ 消息顺序、消息幂等、消息重复、消息事务、集群
1. 消息顺序 场景:比如下单操作,下单成功之后,会发布创建订单和扣减库存消息,但扣减库存消息执行会先于创建订单消息,也就说前者执行成功之后,才能执行后者. 不保证完全按照顺序消费,在 MQ 层面支持 ...
- WebSocket+Java 私聊、群聊实例
前言 之前写毕业设计的时候就想加上聊天系统,当时已经用ajax长轮询实现了一个(还不懂什么是轮询机制的,猛戳这里:https://www.cnblogs.com/hoojo/p/longPolling ...
- Python3 itchat微信获取好友、公众号、群聊的基础信息
Python3 itchat微信获取好友.公众号.群聊的基础信息 一.简介 安装 itchat pip install itchat 使用个人微信的过程当中主要有三种账号需要获取,分别为: 好友 公众 ...
- 4. 彤哥说netty系列之Java NIO实现群聊(自己跟自己聊上瘾了)
你好,我是彤哥,本篇是netty系列的第四篇. 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识. 简介 上一章我们一起学习了Java中的BIO/NIO/AIO的故事,本章将带着大家一起使 ...
- 阿里百川IMSDK--自定义群聊界面
// 获取群对象 YWTribe *tribe = [self.tribesArray objectAtIndex:indexPath.row]; // 发起群聊 UIViewController * ...
- 为什么使用中间件下载时总是收到警告消息Object is in status Wait
在使用中间件从ERP下载对象时,正常情况下应该看到如下提示消息: 然而有时遇到的是黄色的警告消息:Object is in status Wait. 如何自己排错呢?在函数SMOF0_INIT_DNL ...
- 基于ejabberd简单实现xmpp群聊离线消息
首先,xmpp服务器是基于ejabberd.离线消息模块是mod_interact,原地址地址:https://github.com/adamvduke/mod_interact: 修改后实现群聊离线 ...
- Strophe.js连接XMPP服务器Openfire、Tigase实现Web私聊、群聊(MUC)
XMPP(Extensible Messaging and Presence Protocol)是一种网络即时通讯协议,它基于XML,具有很强的扩展性,被广泛使用在即时通讯软件.网络游戏聊天.Web聊 ...
- SignalR实现消息推送,包括私聊、群聊、在线所有人接收消息(源码)
一.关于SignalR 1.简介:Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面, ...
随机推荐
- Spring JDBC查询返回对象代码跟踪
在封装方法的时候突然发现通过 ResultSetMetaData的getColumnCount()获取到的列明会多一列(ROWSTAT),而且每次的值都是1,目前没有找到相关信息,在国外网站上看到有类 ...
- asp.net mvc 反射应用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 什么是Mocking framework?它有什么用?(转)
今天我想讲下关于mocking frameworks,并且解释下他为什么有用处.我将给你们展示用和不用mocking framework两种测试方法. 假设我们已经有了一个Driver类: publi ...
- 京东android面试题(2018 顶级互联网公司面试题系列)
以下来自于北京的一个兄弟的面试题 1.静态内部类和非静态内部类有什么区别 2.谈谈你对java多态的理解 3.如何开启线程,run和runnable有什么区别 4.线程池的好处 5.说一下你知 ...
- world embedding 嵌入
http://papers.nips.cc/paper/5477-neural-word-embedding-as-implicit-matrix-factorization 嵌入 | Tenso ...
- 15.Django添加一个功能模块的步骤(和SpringMVC类比)
这里介绍如何在Django里新建一个模块,这个例子还是最简单的例子 通过浏览器访问 http://localhost:8000/hello/然后返回一个欢迎页 我是做java web出身的,这里用py ...
- 编程算法 - 最好牛线(Best Cow Line) 代码(C)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/37909933 最好牛线(Best Cow L ...
- Computer Vision: Algorithms and ApplicationsのImage processing
实在是太喜欢Richard Szeliski的这本书了.每一章节(after chapter3)都详述了该研究方向比較新的成果.还有很多很多的reference,假设你感兴趣.全然能够看那些參考论文 ...
- htop的使用
htop是top的增强版本.官网地址: http://hisham.hm/htop/ 这网站比较...... 实验环境: [root@miyan ~]# cat /etc/redhat-release ...
- php函数指定默认值的方法
发布:JB02 来源:脚本学堂 [大 中 小] 本文介绍下,在php编程中,指定函数的默认值的方法,分享二个例子,供大家学习参考下.本文转自:http://www.jbxue.com/ar ...