无法使用xmpp发送消息

我使用XMPP框架在iOS中开发了一个聊天应用程序。 已成功完成用户的身份验证。 我也能够接收来自其他用户的消息。 但无法发送消息到相同的。 我使用XMPPStream类的sendElement方法发送消息。 连接在开始时成功建立,即在登录时,我也能够查看在线和离开的用户。但是,只有在发送消息时连接才会丢失。 每当我尝试发送消息时,连接状态总是显示为在发送元素方法中断开,即STATE_XMPP_DISCONNECTED。

有人可以让我知道为什么在向任何用户发送消息时发生连接丢失。

我已经通过下面的链接,但没有得到任何帮助。 1)未发送XMPPFramework消息2)通过iOS的XMPPFramework发送消息

我的应用程序的流程如下:登录后,会显示在线/离开的用户列表。 点击一个用户,我会看到下一个屏幕与他聊天,在那里我输入我的信息并点击发送按钮。

这是我的代码发送消息:

 - (IBAction)sendMessage {

  NSString *messageStr = self.messageField.text;
  if([messageStr length] > 0) {
     NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
    [body setStringValue:messageStr];       
    NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
    [message addAttributeWithName:@"type" stringValue:@"chat"];
    [message addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"%@@cwt-dst-w005",chatWithUser ]];
    [message addChild:body];
    self.messageField.text = @"";
    NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
    [m setObject:messageStr forKey:@"msg"];
    [m setObject:@"you" forKey:@"sender"];      
    [messages addObject:m];
    [self.tView reloadData];

    NSIndexPath *topIndexPath = [NSIndexPath indexPathForRow:messages.count-1
                                               inSection:0];
    [self.tView scrollToRowAtIndexPath:topIndexPath
                  atScrollPosition:UITableViewScrollPositionMiddle
                          animated:YES];
  }

这里是我断开状态的地方。

 - (void)sendElement:(NSXMLElement *)element
{
if (element == nil) return;
NSLog(@"STATE--->%d",state);
dispatch_block_t block = ^{ @autoreleasepool {

    if (state == STATE_XMPP_CONNECTED)
    {
        [self sendElement:element withTag:TAG_XMPP_WRITE_STREAM];
    }
    else
    {
        [self failToSendElement:element];
    }
}};

if (dispatch_get_specific(xmppQueueTag))
    block();
else
    dispatch_async(xmppQueue, block);
}
链接地址: http://www.djcxy.com/p/93523.html

上一篇: Unable to send messages using xmpp

下一篇: Messages are abusive or marked as spam