Skip to main content
Quick Reference for AI Agents & Developers
// Connection status listener
CometChat.addConnectionListener("CONN_LISTENER", new CometChat.ConnectionListener({
  onConnected: () => console.log("Connected"),
  onDisconnected: () => console.log("Disconnected"),
  onConnecting: () => console.log("Connecting...")
}));

// Manual WebSocket control
CometChat.connect();     // Connect
CometChat.disconnect();  // Disconnect

// Login listener
CometChat.addLoginListener("AUTH_LISTENER", new CometChat.LoginListener({
  loginSuccess: (user) => console.log("Logged in"),
  logoutSuccess: () => console.log("Logged out")
}));
Build robust, production-ready chat applications with advanced SDK capabilities including connection management, real-time listeners, and performance optimization.

Advanced Capabilities

When to Use Advanced Features

FeatureUse CaseBenefit
Connection StatusMobile apps, unstable networksGraceful offline handling
Manual WebSocketBackground apps, battery optimizationResource efficiency
Real-Time ListenersCustom UI updates, analyticsFull event control
Login ListenerMulti-device sync, securitySession management

Connection Management

Understanding connection states is crucial for production applications:
// Monitor connection status
CometChat.addConnectionListener(
  "CONNECTION_LISTENER",
  new CometChat.ConnectionListener({
    onConnected: () => {
      console.log("Connected to CometChat");
      // Enable chat features
    },
    onDisconnected: () => {
      console.log("Disconnected from CometChat");
      // Show offline indicator
    },
    onConnecting: () => {
      console.log("Connecting...");
      // Show loading state
    },
    onFeatureThrottled: () => {
      console.log("Feature throttled");
      // Handle rate limiting
    }
  })
);

Best Practices

Implement reconnection logic and offline indicators to maintain good UX during network issues.
onDisconnected: () => {
  showOfflineIndicator();
  queueOutgoingMessages();
}
Remove listeners when components unmount to prevent memory leaks.
// On component unmount
CometChat.removeConnectionListener("CONNECTION_LISTENER");
Disconnect WebSocket when app goes to background to save battery and resources.
document.addEventListener("visibilitychange", () => {
  if (document.hidden) {
    CometChat.disconnect();
  } else {
    CometChat.connect();
  }
});

Next Steps