2015-02-04 2 views
0

Как получить автономного и онлайн-пользователя в чат-чате quickblox между двумя пользователями. Если два пользователя Jone и kally, если kally вне форума, как получить статус автономного пользователя Kally, мой код здесь. Пожалуйста, проверьте и помогите мне.Чат/1: 1 Чат в Quickblox Chat sdk

  try { 
      QBChatMessage chatMessage = new QBChatMessage(); 
      chatMessage.setBody(inputbox.getText().toString()); 
      chatMessage.setProperty("save_to_history", "1"); 
      long time = System.currentTimeMillis()/1000; 
      chatMessage.setProperty("date_sent", time + ""); 
      privateChat.sendMessage(chatMessage); 
      showMessage(chatMessage); 
      inputbox.setText(""); 
     } catch (XMPPException e) { 
      Log.e("XMPPException",e.toString()); 
     } catch (SmackException.NotConnectedException e) { 
      Log.e("Not Connected Exception",e.toString()); 
     }catch (NullPointerException e) { 
      Log.e("NullPointerException", e.toString()); 
     }catch (Exception e) { 
      Log.e("Exception", e.toString()); 
     } 

     QBPrivateChatManagerListener privateChatManagerListener = new    QBPrivateChatManagerListener() { 
    @Override 
    public void chatCreated(final QBPrivateChat privateChat, final boolean createdLocally) { 
     if(!createdLocally){ 
      privateChat.addMessageListener(privateChatMessageListener); 
     } 
    } 
}; 

QBMessageListener<QBPrivateChat> privateChatMessageListener = new QBMessageListener<QBPrivateChat>() { 
    @Override 
    public void processMessage(QBPrivateChat privateChat, final QBChatMessage chatMessage) { 
     Log.w(Tag, "new incoming message: chatMessage" + chatMessage); 
     showMessage(chatMessage); 
     playBeepSound(mContext); 
    } 

    @Override 
    public void processError(QBPrivateChat privateChat, QBChatException error, QBChatMessage originMessage){ 
     Log.w(Tag, "new incoming message: originMessage" + originMessage); 
    } 

    @Override 
    public void processMessageDelivered(QBPrivateChat privateChat, String messageID){ 
     Log.w(Tag, "new incoming message:messageID " + messageID); 
    } 

    @Override 
    public void processMessageRead(QBPrivateChat privateChat, String messageID){ 
     Log.w(Tag, "new incoming message:messageID messageID" + messageID); 
    } 
}; 
private void createNewDialog(){ 
    privateChatManager = QBChatService.getInstance().getPrivateChatManager(); 
    privateChatManager.createDialog(opponentId, new QBEntityCallbackImpl<QBDialog>() { 
     @Override 
     public void onSuccess(QBDialog dialog, Bundle args) { 
      //Log.e("QBdialog", ""+dialog); 
      //Log.e("id", dialog.getDialogId()); 
      setUpListener(); 
      isQBDialog = true; 
     } 

     @Override 
     public void onError(List<String> errors) { 
      Log.e("errors", ""+errors); 
      isQBDialog = false; 

     } 
    }); 
} 

private void setUpListener(){ 
privateChatManager.addPrivateChatManagerListener(privateChatManagerListener); 
    privateChat = privateChatManager.getChat(opponentId); 
    if (privateChat == null) { 
     privateChat = privateChatManager.createChat(opponentId, privateChatMessageListener); 
     privateChat.addIsTypingListener(privateChatIsTypingListener); 

    }else{ 
     privateChat.addMessageListener(privateChatMessageListener); 
     privateChat.addIsTypingListener(privateChatIsTypingListener); 
    } 
} 

я следовать по ссылке для чата http://quickblox.com/developers/Android_XMPP_Chat_Sample

ответ

0

Я также пытался реализовать quickblox поболтать один на один чат, который я застрял, как документация не так достаточно. Затем я обнаружил socket.io, который более удобен для одного в чате. Следуйте ссылке: http://socket.io/blog/native-socket-io-and-android/. Вы также должны найти бесплатную хостинговую компанию node.js. Предлагаю вашему вниманию heroku.com

0

Вы можете добавить слушателя для отслеживания статусов пользователей - RosterListener.

Например:

https://github.com/QuickBlox/q-municate-android/blob/master/Q-municate_core/src/main/java/com/quickblox/q_municate_core/qb/helpers/QBFriendListHelper.java

Q-municate отслеживает пользователей статусы в режиме реального времени (частные и групповые чаты).

Смежные вопросы