XMPP MUC 在向房间发送消息时重复消息



我正在开发一个聊天应用程序来实现多用户聊天功能。我能够加入房间并发送消息,但我面临一个奇怪的问题。将消息发送到房间时,消息会重复/复制自身。此问题在发件人端(向房间发送消息的用户),而房间中的其他用户收到一条正确的消息。

- (void)sendMessageWithBody:(NSString )messageBody andMessageId:(NSString) messageId 
{ 
if ([messageBody length] == 0) return; 
NSXMLElement *body = [NSXMLElement elementWithName:@"body" stringValue:messageBody];
 XMPPMessage *message = [XMPPMessage message];
 [message addAttributeWithName:@"id" stringValue:messageId];
 [message addChild:body];
 [self sendMessage:message]; 
} 
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
{
    XMPPLogTrace();
    NSString* fromStr;
    NSArray* arrayFrom = [[message fromStr] componentsSeparatedByString:@"/"];
    if ([arrayFrom count] > 1)
    {
        fromStr = [arrayFrom objectAtIndex:1];
    }
    NSString* toStr;
    NSArray* arrayTo = [[message toStr] componentsSeparatedByString:@"@"];
    if ([arrayTo count] > 1)
    {
        toStr = [arrayTo objectAtIndex:0];
    }
    if ([fromStr isEqualToString:toStr] || ([[message body] length] == 0)) {
        return;
    }
    if ([self shouldArchiveMessage:message outgoing:NO xmppStream:sender])
    {
        [xmppMessageArchivingStorage archiveMessage:message outgoing:NO xmppStream:sender];
    }
}

最新更新