> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-platform-docs-release.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Connection Status

> Connection Status — CometChat documentation.

CometChat SDK provides you with a mechanism to get real-time status of the connection to CometChat web-socket servers. This can be achieved by registering for the events using the `CometChatConnectionDelegate` class.

Connection Status provides you with the below 3 methods to get the status of the connection to CometChat web-socket servers:

| Delegate Method | Information                                                                                                                                      |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| connecting      | This method is triggered when CometChat SDK is trying to establish a connection to the web-socket server.                                        |
| connected       | This method is called when CometChat SDK has successfully established a connection and now is connected.                                         |
| disconnected    | This method is called when the CometChat SDK gets disconnected due to any issue while maintaining the connection like network fluctuations, etc. |

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 Delegate methods you must add protocol conformance `CometChatConnectionDelegate` as `CometChat.conectiondelegate = self` . Here is the example of CometChatConnectionDelegate:

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    extension AppDelegate: CometChatConnectionDelegate {

    	func connecting() {
        
      	print("connecting")
      }
        
      func connected() {
            
        print("connected")  
      }
        
      func disconnected() {
      
      	print("disconnected")
      }
    }
    ```
  </Tab>

  <Tab title="Objective C">
    ```objc theme={null}
    @interface ViewController ()<CometChatConnectionDelegate>

    @end

    @implementation ViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        [CometChat connectiondelegate:self];
    }

    - (void)connecting() {
        
        NSLog(@"Connecting");
    }

    - (void)connected() {
        
        NSLog(@"Connected");
    }

    - (void)disconnected() {
        
        NSLog(@"Disconnected");
    }
    ```
  </Tab>
</Tabs>

<Note>
  We recommend you to add the Connection Status delegate in your AppDelegate and in your app's first view controller that opens when you log in.
</Note>

You can also get the current connection status by using `getConnectionStatus` property provided by CometChat SDK

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    var connectionStatus = CometChat.getConnectionStatus?.value
    ```
  </Tab>
</Tabs>

The `CommetChat.getConnectionStatus` method will return either of the below 3 values:

1. connecting
2. connected
3. disconnected
