2016-10-06 8 views
2

私は試しましたQuickBlox文書の方法ですが、最後の要求時間は常に一定です。実際には、接続したユーザーがQuickBuffxで何かのチャットのような操作を行うと更新されるはずです。
でも同じです(ユーザーのログイン時のみ)。

どのようにリクエストごとに更新されるのですか?
次のコードを試しました。私の[ユーザーlastRequestAt]は、ユーザのログイン、すべての時間が同じであるので、それはオフラインを示し、すべての場合でここQuickBlox iOSのオンライン/オフラインの問題

[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 
     } 
    } 
}]; 


それでは、オンライン/オフラインでリアルタイムに表示されるわけではありません。助けてください

答えて

1

多くの調査の結果、私はSubscription状態でしかQuickBloxを使用してリアルタイムでオンライン/オフラインを達成できることを発見しました。

サブスクリプションの状態は4つあります。

  1. QBPresenseSubscriptionStateNone
  2. QBPresenseSubscriptionStateTo
  3. QBPresenseSubscriptionStateFrom
  4. QBPresenseSubscriptionStateBoth

我々は対戦相手(他の)ユーザーに要求を送信する必要がoffile相手のユーザーが自分の要求手段を受け入れる場合は、/オンラインリアルタイムをチェックします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を参照してください。