我如何从xmpp中的不同帐户发送消息

时间:2012-07-06 11:26:22

标签: iphone xmpp

我正在使用xmpp客户端开发聊天应用程序。当我使用一个帐户登录时,我可以发送和接收消息。我的问题是,当我使用两个不同的帐户登录时,我无法使用首次登录帐户发送邮件。为了发送消息我尝试了以下代码:

 - (void)sendMessage:(id)sender
{  
    xmppStream=[[self appDelegate] xmppStream];

    NSString *messageStr =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:jidStr];
        [message addChild:body];
         NSLog(@"%@",message);
     }

}

在这个委托方法中,我创建像fallowing一样的流对象

-(void)setUpStream
{
XMPPStream *xmppStream=[XMPPStream alloc] init]
}

当我第二次使用其他帐户登录时,xmppStream对象与第二个帐户关联,但不与First帐户关联。

所以我无法使用第一个账户发送消息。任何一个解决我的问题PLZ以及如何为两个账户创建两个xmppStream对象;

1 个答案:

答案 0 :(得分:0)

最简单的方法是在AppDelegate中创建xmppStream对象。

调用一个xmppStreamOne和xmppStreamTwo。

如果您打算登录许多不同的服务器,甚至可以创建xmppStreams的NSMutableArray。

当你从AppDelegate中检索xmppStream时,请确保抓住正确的。