2014-01-22 155 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);