Android 聊天/Quickblox聊天sdk中的1:1聊天
如何在两个用户之间的quickblox私人聊天中获得脱机和联机用户。 如果两个用户Jone和kally如果kally脱机,那么如何在此处获取脱机用户kally的状态我的代码。请检查并帮助我Android 聊天/Quickblox聊天sdk中的1:1聊天,android,quickblox,Android,Quickblox,如何在两个用户之间的quickblox私人聊天中获得脱机和联机用户。 如果两个用户Jone和kally如果kally脱机,那么如何在此处获取脱机用户kally的状态我的代码。请检查并帮助我 try { QBChatMessage chatMessage = new QBChatMessage(); chatMessage.setBody(inputbox.getText().toString()); ch
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);
}
}
试试看{
QBChatMessage chatMessage=新的QBChatMessage();
setBody(inputbox.getText().toString());
setProperty(“保存到历史记录”,“1”);
长时间=System.currentTimeMillis()/1000;
setProperty(“发送日期”,时间+”);
privateChat.sendMessage(chatMessage);
showMessage(chatMessage);
inputbox.setText(“”);
}捕获(XMPPException e){
Log.e(“XMPPException”,e.toString());
}捕捉(SmackException.NotConnectedException e){
Log.e(“未连接异常”,例如toString());
}捕获(NullPointerException e){
e(“NullPointerException”,e.toString());
}捕获(例外e){
Log.e(“异常”,例如toString());
}
QBPrivateChatManagerListener privateChatManagerListener=新的QBPrivateChatManagerListener(){
@凌驾
已创建公共无效聊天室(最终QBPrivateChat privateChat,最终布尔值createdLocally){
如果(!createdLocally){
addMessageListener(privateChatMessageListener);
}
}
};
QBMessageListener privateChatMessageListener=新的QBMessageListener(){
@凌驾
public void processMessage(QBPrivateChat privateChat,最终QBChatMessage chatMessage){
Log.w(标签,“新传入消息:chatMessage”+chatMessage);
showMessage(chatMessage);
播放声音(McContext);
}
@凌驾
public void processError(QBPrivateChat privateChat、QBChatException错误、QBChatMessage originMessage){
Log.w(标签,“新传入消息:originMessage”+originMessage);
}
@凌驾
public void processMessageDelivered(QBPrivateChat privateChat,字符串messageID){
Log.w(标签,“新传入消息:messageID”+messageID);
}
@凌驾
public void processMessageRead(QBPrivateChat privateChat,字符串messageID){
Log.w(标签,“新传入消息:messageID messageID”+messageID);
}
};
私有void createNewDialog(){
privateChatManager=QBChatService.getInstance().getPrivateChatManager();
createDialog(opponentId,新的QBEntityCallbackImpl(){
@凌驾
成功时公共无效(QB对话框,捆绑参数){
//Log.e(“QBdialog”,即“+”对话框);
//Log.e(“id”,dialog.getDialogId());
setUpListener();
isQBDialog=true;
}
@凌驾
公共无效onError(列表错误){
Log.e(“错误”,“错误+错误”);
isQBDialog=false;
}
});
}
私有void setUpListener(){
添加privateChatManagerListener(privateChatManagerListener);
privateChat=privateChatManager.getChat(opponnetid);
if(privateChat==null){
privateChat=privateChatManager.createChat(opponnetid,privateChatMessageListener);
privateChat.addIsTypingListener(privateChatIsTypingListener);
}否则{
addMessageListener(privateChatMessageListener);
privateChat.addIsTypingListener(privateChatIsTypingListener);
}
}
我正在跟踪聊天链接
我还尝试为一对一聊天实现quickblox聊天,但由于文档不够,我遇到了困难。然后我找到了socket.io,这对于一对一聊天更方便。您还必须找到一家免费的node.js托管公司。我可以向您推荐heroku.com您可以添加用于跟踪用户状态的侦听器-RosterListener 例如: Q-municate实时跟踪用户状态(私人和团体聊天)