Connection Status
CometChat SDK provides you with a mechanism to get real-time status of the connection to CometChat web-socket servers. To achieve this you need to use the ConnectionListener
class provided by the CometChat SDK
Connection Status provides you with the below 3 methods to get the status of the connection to CometChat web-socket servers:
Delegate Method | Information |
---|---|
onConnecting | This method is triggered when CometChat SDK is trying to establish a connection to the web-socket server. |
onConnected | This method is called when CometChat SDK has successfully established a connection and now is connected. |
onDisconnected | This method is called when the CometChat SDK gets disconnected due to any issue while maintaining the connection like network fluctuations, etc. |
onFeatureThrottled | CometChat automatically toggles off certain features to prevent performance loss for end-users under various circumstances |
Once the connection is broken, the disconnected callback is triggered, the SDK automatically tries to establish the connection again, thus going into the connecting state and triggering the connecting
method. Once the attempt to connect is successful, the connected
method is triggered thus letting the developer know that the connection is established and is active.
In order to use the ConnectionListeners, you need to add the ConnectionListeners using the addConnectionListener
method provided by the SDK. You can add multiple listeners as shown below. Just make sure you add listeners with unique IDs.
- Java
- Kotlin
CometChat.addConnectionListener("UNIQUE_LISTENER_ID", new CometChat.ConnectionListener() {
@Override
public void onConnected() {
Log.i(TAG, "onConnected: ");
}
@Override
public void onConnecting() {
Log.i(TAG, "onConnecting: ");
}
@Override
public void onDisconnected() {
Log.i(TAG, "onDiconnected: ");
}
@Override
public void onFeatureThrottled() {
Log.i(TAG, "onFeatureThrottled: ");
}
@Override
public void onConnectionError(CometChatException e) {
Log.i(TAG, "onConnectionError: ");
}
});
CometChat.addConnectionListener("UNIQUE_LISTENER_ID", object : ConnectionListener {
override fun onConnected() {
Log.i(TAG, "onConnected: ")
}
override fun onConnecting() {
Log.i(TAG, "onConnecting: ")
}
override fun onDisconnected() {
Log.i(TAG, "onDiconnected: ")
}
override fun onFeatureThrottled() {
Log.i(TAG, "onFeatureThrottled: ")
}
override fun onError(e: CometChatException) {
Log.i(TAG, "onError: ")
}
})
You can also get the current connection status by using getConnectionStatus
property provided by CometChat SDK
- Java
- Kotlin
String connectionStatus = CometChat.getConnectionStatus();
val connectionStatus = CometChat.getConnectionStatus()
The above method will return either of the below 3 values:
-
CometChatConstants.WS_STATE_CONNECTED
(connected); -
CometChatConstants.WS_STATE_CONNECTING
(connecting) -
CometChatConstants.WS_STATE_DISCONNECTED
(disconnected) -
CometChatConstants.WS_STATE_FEATURE_THROTTLED
(featureThrottled)
Know more about CometChat SDK connection behaviour click here