0

xmpp クライアントを使用してチャット アプリケーションを開発しています。一つのアカウントでログインするだけでメッセージの送受信ができます。私の問題は、2 つの異なるアカウントでログインすると、最初のログイン アカウントを使用してメッセージを送信できないことです。メッセージを送信するために、次のコードを試しました:

 - (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]
}

別のアカウントで 2 回目にログインすると、xmppStream オブジェクトは 2 番目のアカウントに関連付けられますが、最初のアカウントには関連付けられません。

そのため、最初のアカウントを使用してメッセージを送信できません。誰かが私の問題を解決できますか plz と、2 つのアカウントに対して 2 つの xmppStream オブジェクトを作成する方法。

4

1 に答える 1

0

これを行う最も簡単な方法は、AppDelegate で xmppStream オブジェクトを作成することです。

1 つの xmppStreamOne と xmppStreamTwo を呼び出します。

多くの異なるサーバーにログインする場合は、xmppStreams の NSMutableArray を作成することもできます。

AppDelegate から xmppStream を取得するときは、必ず正しいものを取得してください。

于 2012-07-06T20:48:46.330 に答える