2014-01-22 118 views
2

我使用Quickblox SDK 0.8.1版开发了聊天应用程序。有时,应用会失去与服务器的聊天连接,因此即使在同一个聊天页面中也无法发送消息或接收消息。每次发生这种情况时都必须重新加载,即使有时它不会重新连接。所以任何机构都可以帮助我。Quickblox一对一聊天连接丢失

回答

2

要重新连接到聊天,请做到:

iOS的方式

- (void)chatDidFailWithError:(int)code 
{ 
    // reconnect 
    [[QBChat instance] loginWithUser:[LocalStorageController shared].qbUser]; 
} 

Android的方式(SDK 1.1版)

// initialize SMACK 
SmackAndroid.init(this); 

final QBUser user = new QBUser("garry", "garry2892pass"); 
user.setId(4234); 
QBChatService.getInstance().loginWithUser(user, LoginActivity.this); 


@Override 
public void onLoginSuccess() { 
    Log.d(TAG, "success when login"); 
} 

@Override 
public void onLoginError() { 
    Log.e(TAG, "error when login"); 
} 

@Override 
public void onDisconnect() { 
    Log.d(TAG, "disconnect when login"); 

    // Relogin here 
} 

@Override 
public void onDisconnectOnError(Exception exc) { 
    Log.e(TAG, "disconnect error when login", exc); 

    // Relogin here 
} 

更多的信息在这里http://quickblox.com/developers/Android_XMPP_Chat_Sample

只需在此处将Android SDK更新至1.1 http://quickblox.com/developers/Android#Download_Android_SDK

+0

嗨,当这种方式!感谢您的回应。您可以在Android中提供此代码吗?而且我使用的是0.8.1版本,所以这段代码是否工作? – Reshma

+0

当然,更新了我的答案 –

1

使用使用Quickblox SDK 2.0

ConnectionListener connectionListener = new ConnectionListener() { 
@Override 
public void connected(XMPPConnection connection) { 

} 

@Override 
public void authenticated(XMPPConnection connection) { 

} 

@Override 
public void connectionClosed() { 

} 

@Override 
public void connectionClosedOnError(Exception e) { 
    // connection closed on error. It will be established soon 
} 

@Override 
public void reconnectingIn(int seconds) { 

} 

@Override 
public void reconnectionSuccessful() { 

} 

@Override 
public void reconnectionFailed(Exception e) { 

} 
}; 



QBChatService.getInstance().addConnectionListener(connectionListener);