我已尝试过QuickBlox
文档方法,但上次请求时间一直是常量,实际上应该在连接用户使用Quick blox进行任何活动时进行更新,例如与某人聊天。
但是,它保持不变。(它给出了用户只能登录的时间)。
那么如何更新每个请求?
我尝试了以下代码。< / p>
[QBACCESS fetchUserDetailsWithID:userID withCompeltionHandler:^(QBUUser *userDetails,BOOL status){
if(status){
QBUUser *user = userDetails;
NSInteger currentTimeInterval = [[NSDate date] timeIntervalSince1970];
NSInteger userLastRequestAtTimeInterval = [[user lastRequestAt] timeIntervalSince1970];
// if user didn't do anything last 1 minute (60 seconds)
if((currentTimeInterval - userLastRequestAtTimeInterval) > 60){
//means user is offline
}
else{
//user is online
}
}
}];
在所有情况下,它显示为离线状态,因为我的[user lastRequestAt]在用户登录时始终相同。
因此,它不能实时在线/离线。请帮帮我
答案 0 :(得分:1)
经过大量研究,我发现只有通过订阅状态,我们才能使用QuickBlox实现在线/离线实时。
有四个订阅状态。
为了检查实时在线/离线,我们需要向对手(其他)用户发送请求,如果对手用户接受他们的请求意味着QBPresenseSubscriptionStateBoth,那么两者都将相互了解并且将跟随委托方法,
- (void)chatContactListDidChange:(QBContactList *)contactList{
}
- (void)chatDidReceiveContactItemActivity:(NSUInteger)userID
isOnline:(BOOL)isOnline
status:(NSString *)status{
//here we check offline/online of particular user using ID.
}
有关详细信息,请访问:Contact List。