【问题标题】:iphone xmppframework How do I list all the online users of my particular domainiphone xmppframework 如何列出我的特定域的所有在线用户
【发布时间】:2011-10-13 18:17:24
【问题描述】:

我正在为 iPhone 使用 xmppframework。我想知道如何检查我的特定域的所有可用用户?

谢谢

【问题讨论】:

    标签: iphone xmppframework


    【解决方案1】:
    - (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence {
    
        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, @"gmail.com"]];
    
            } else if ([presenceType isEqualToString:@"unavailable"]) {
    
                [_chatDelegate buddyWentOffline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, @"gmail.com"]];
    
            }
    
        }
    }
    

    将此方法用于 AppDelegate 文件。

    在此使用 newBuddyOnline 方法创建 @protocol。

    而你想在哪里显示列表,你只需在其中使用这些方法,..

    - (void)newBuddyOnline:(NSString *)buddyName {
    
        [onlineBuddies addObject:buddyName];
        [self.TableView reloadData];
    }
    
    - (void)buddyWentOffline:(NSString *)buddyName {
        [onlineBuddies removeObject:buddyName];
        [self.TableView reloadData];
    }
    

    【讨论】:

    • 如何获得以上响应?意味着我应该向服务器请求什么服务器向我发送带有状态的朋友列表。
    • 上面显示了当前登录用户的存在,但没有显示其他抵抗用户的存在
    • @Suresh.D 如何从委托中调用这两种方法?
    • NSObject 可能不会响应 newBuddyOnline。收到此警告,我的 newBuddyOnline 没有调用。我应该如何从 Appdelegate 调用 newBuddyOnline 方法
    • @Sushrita 它是协议,无论你在哪里实现你都应该使用它。
    猜你喜欢
    • 2011-06-25
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多