質問

iPhone用のXMPPクライアントを開発しています。メッセージを送受信できます。ユーザーへの迅速なことなく、自動的にバディ要求を受け入れたいです。どの関数で要求を受け取ります。ヒントをください。

事前にありがとうございました。

役に立ちましたか?

解決

大丈夫、私はあなたに完璧な答えを持っています!

これはコードです:

- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence {

    // a buddy went offline/online

    NSString *presenceType = [presence type];            // online/offline
    NSString *myUsername = [[sender myJID] user];
    NSString *presenceFromUser = [[presence from] user];

    if (![presenceFromUser isEqualToString:myUsername]) {

        if ([presenceType isEqualToString:@"available"]) {

            [_chatDelegate newBuddyOnline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
               NSLog(@"presence user is %@",presenceFromUser);

        } 

        else if  ([presenceType isEqualToString:@"unavailable"]) {

            [_chatDelegate buddyWentOffline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
            NSLog(@"presence user is invisible %@",presenceFromUser);

        }
        else if  ([presenceType isEqualToString:@"subscribe"]) {

            [_chatDelegate newBuddyOnline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
                        NSLog(@"presence user wants to subscribe %@",presenceFromUser);

        }

    }
}
.

私はあなたのより良い理解のためのDidReceivePresenceメソッドの完全なコードをあなたに提供しました。

今すぐあなたにコードを説明させてください。私が受け取っている値(要素)を比較している場合は、そうでなければ気付いたら。そのため、SUBSCRIBE(ユーザーが友達リクエストを送信するとき)として文字列を取得すると、TableView Buddyリストにその特定のユーザーを追加する必要があります。

「PresenceFromUser」からユーザー名を取得できます。

あなたがもう理解を一)必要な場合は、答えに返事を返金してください。そして私は http://czartechnogeeks.com/isolutions

多くの場合、スタックオーバーフローを使ってユーザーに価値のあるものを共有できるようにしてくれてうれしいです。

他のヒント

Uは別の関数で要求を受けません。バディがオンラインになるか送信要求に依頼するたびに、DidReceivePresence Delegate関数が呼び出されます。Pression Type= Subscriptionを受信した場合は、BuddyRequestです。これがあなたを助けることを願っています。

関数 didreceivepresence

購読を受け入れるには、このコードを使用できます。

  NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"];
  [presence addAttributeWithName:@"type" stringValue:@"subscribed"];
  [presence addAttributeWithName:@"to" stringValue:[presence fromStr]];
  [presence addAttributeWithName:@"from" stringValue:@"you@host"];
  [[self xmppStream] sendElement:presence];
.

に役立ちますように:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top