[英]Chat/1:1 Chat in Quickblox Chat sdk
如何在两个用户之间的quickblox私人聊天中获取离线和在线用户。 如果两个用户Jone和kally如果kally处于离线状态,那么如何在此处获取离线用户Kally的状态呢? 请检查并帮助我。
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
我还尝试过实现一对一聊天的quickblox聊天,但是由于文档不够,我被卡住了。 然后我发现了socket.io,它对于一对一的聊天更加方便。点击链接: http ://socket.io/blog/native-socket-io-and-android/。 您还必须找到免费的node.js托管公司。 我可以建议你heroku.com
您可以添加侦听器以跟踪用户状态-RosterListener。
例如:
Q-municate实时跟踪用户状态(私人聊天和群聊)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.