因为在群里发言的话,消息服务器会把接受到的消息发给群里的每个人,所以用户自身会接收到该消息,这样就造成群聊时可以收到自己发的消息.解决方法是在XMPPMessageArchiving中对收到的消息来源进行区分.
代码如下
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
{
XMPPLogTrace();
XMPPJID *jid = message.from;
NSString *loginName = [[NSUserDefaults standardUserDefaults] objectForKey:@"loginNameStr"];
if ([loginName isEqualToString:jid.resource]) {
return ;
}
if ([self shouldArchiveMessage:message outgoing:NO xmppStream:sender])
{
[xmppMessageArchivingStorage archiveMessage:message outgoing:NO xmppStream:sender];
}
}