quickblox 在线离线用户状态

Online offline user staus in quickblox

我指的是 quickblox 中的示例 iOS 应用程序,用于将聊天/通话功能集成到我的应用程序中。但我发现 SDK 和 Q-municate 应用程序的框架有所不同。

视频/音频通话与 SDK but when I tried to find online / offline status of the user i had to include framework from Q-municate 一起提供的示例应用程序正常工作。在包括我无法在模拟器上 运行 之后,它给出了错误

"Undefined symbols for architecture x86_64"

但它 运行 在真实设备上。

视频通话在使用 Q-municate 框架的设备上挂起,但使用 SDK 中的框架可以正常工作。

知道有什么区别吗??

更新:以下方法应该仍然有效。还有一种新方法可以做到这一点,在发布此答案时尚不可用。请参阅下面的 Update-2 部分。

要查找用户 (online/offline) 的状态,Quickblox 建议如下:

每个用户都有 lastRequestAt 字段 - 显示最后一个用户的 activity 时间。您可以使用它来确定用户现在是在线还是离线。

NSInteger currentTimeInterval = [[NSDate date] timeIntervalSince1970];
NSInteger userLastRequestAtTimeInterval   = [[user lastRequestAt] timeIntervalSince1970];

// if user didn't do anything last 5 minutes (5*60 seconds)    
if((currentTimeInterval - userLastRequestAtTimeInterval) > 5*60){ 
     // user is offline now
}

Update-2

要查找在线用户列表,请使用以下命令:

NSMutableDictionary *filters = [NSMutableDictionary dictionary];
filters[@"filter[]"] = @"date last_request_at gt 2012-03-20T08:47:34Z";

[QBRequest usersWithExtendedRequest:filters page:[QBGeneralResponsePage responsePageWithCurrentPage:1 perPage:100] successBlock:^(QBResponse *response, QBGeneralResponsePage *page, NSArray *users) {
     // Request succeeded   
} errorBlock:^(QBResponse *response) {
     // Handle error  
}];

取自here.