Skip to main content
Quick Reference for AI Agents & Developers
  • User delegate: CometChat.userdelegate = self (conform to CometChatUserDelegate) — onUserOnline(user:), onUserOffline(user:)
  • Group delegate: CometChat.groupdelegate = self (conform to CometChatGroupDelegate) — member joined/left/kicked/banned events
  • Message delegate: CometChat.messagedelegate = self (conform to CometChatMessageDelegate) — message received/edited/deleted/reaction events
  • Call delegate: CometChat.calldelegate = self (conform to CometChatCallDelegate) — incoming/outgoing call events
  • Login delegate: CometChat.addLoginListener(_:_:) (conform to CometChatLoginDelegate) — login/logout success/failure events
  • Connection delegate: CometChat.addConnectionListener(_:_:) (conform to CometChatConnectionDelegate) — connection status events
  • AI Assistant delegate: CometChat.addAIAssistantListener(_:_:) (conform to AIAssistantEventsDelegate) — AI events
  • Related: User Presence · Receive Message · Ringing
CometChat provides 4 listeners (Delegates) viz.
  1. User Delegate (Listener)
  2. Group Delegate (Listener)
  3. Message Delegate (Listener)
  4. Call Delegate (Listener)

User Delegate Methods

The CometChat provides you with live events related to users. Below are the callback methods provided by the CometChatUserDelegate. In order to use the Delegate methods you must add protocol conformance CometChatUserDelegate as Shown Below:
Do not forget to set your view controller as a CometChat delegate probably in viewDidLoad() as CometChat.userdelegate = self
Event Trigger: Received via CometChatUserDelegate.onUserOnline(user:)user (User Object):
Event Trigger: Received via CometChatUserDelegate.onUserOffline(user:)user (User Object):

Group Delegate Methods

The CometChatGroupDelegate provides you with all the real-time events related to groups. Below are the callback methods provided by the CometChatGroupDelegate. You can receive live events related to groups, In order to receive user Events, you must add protocol conformance CometChatGroupDelegate as shown below:
Do not forget to set your view controller as a CometChat delegate probably in viewDidLoad() as CometChat.groupdelegate = self
Event Trigger: Received via CometChatGroupDelegate.onGroupMemberJoined(action:joinedUser:joinedGroup:)action (ActionMessage Object):joinedUser (User Object):joinedGroup (Group Object):
Event Trigger: Received via CometChatGroupDelegate.onGroupMemberLeft(action:leftUser:leftGroup:)leftUser (User Object):leftGroup (Group Object):
Event Trigger: Received via CometChatGroupDelegate.onGroupMemberKicked(action:kickedUser:kickedBy:kickedFrom:)kickedUser (User Object):kickedBy (User Object):kickedFrom (Group Object):
Event Trigger: Received via CometChatGroupDelegate.onGroupMemberBanned(action:bannedUser:bannedBy:bannedFrom:)bannedUser (User Object):bannedBy (User Object):bannedFrom (Group Object):
Event Trigger: Received via CometChatGroupDelegate.onGroupMemberScopeChanged(action:scopeChangeduser:scopeChangedBy:scopeChangedTo:scopeChangedFrom:group:)scopeChangeduser (User Object):scopeChangedBy (User Object):Scope Change Details:group (Group Object):

Message Delegate Methods

The CometChatMessageDelegate provides you with live events related to messages. Below are the callback methods provided by the CometChatMessageDelegate.
Do not forget to set your view controller as a CometChat delegate probably in viewDidLoad() as CometChat.messagedelegate = self
Event Trigger: Received via CometChatMessageDelegate.onTextMessageReceived(textMessage:)textMessage (TextMessage Object):
Event Trigger: Received via CometChatMessageDelegate.onMediaMessageReceived(mediaMessage:)mediaMessage (MediaMessage Object):
Event Trigger: Received via CometChatMessageDelegate.onTypingStarted(_:) or onTypingEnded(_:)typingDetails (TypingIndicator Object):
Event Trigger: Received via CometChatMessageDelegate.onMessagesDelivered(receipt:) or onMessagesRead(receipt:)receipt (MessageReceipt Object):
Event Trigger: Received via CometChatMessageDelegate.onMessageReactionAdded(reactionEvent:) or onMessageReactionRemoved(reactionEvent:)reactionEvent (ReactionEvent Object):

Call Delegate Methods

The CometChatCallDelegate provides you with live events related to calls. Below are the callback methods provided by the CometChatCallDelegate. In order to receive all call events, you must add protocol conformance CometChatCallDelegate as Shown Below :
Do not forget to set your view controller as a CometChat delegate probably in viewDidLoad() as CometChat.calldelegate = self
Event Trigger: Received via CometChatCallDelegate.onIncomingCallReceived(incomingCall:error:)incomingCall (Call Object):
Event Trigger: Received via CometChatCallDelegate.onOutgoingCallAccepted(acceptedCall:error:)acceptedCall (Call Object):
Event Trigger: Received via CometChatCallDelegate.onOutgoingCallRejected(rejectedCall:error:)rejectedCall (Call Object):
Event Trigger: Received via CometChatCallDelegate.onCallEndedMessageReceived(endedCall:error:)endedCall (Call Object):

Login Delegate Methods

The CometChatLoginDelegate provides you with live events related to login and logout. Below are the callback methods provided by the CometChatLoginDelegate. In order to receive login/logout events, you must add protocol conformance CometChatLoginDelegate as shown below:
To add the login listener:
To remove the login listener:
Event Trigger: Received via CometChatLoginDelegate.onLoginSuccess(user:)user (User Object):
Event Trigger: Received via CometChatLoginDelegate.onLoginFailed(error:)error (CometChatException Object):
Event Trigger: Received via CometChatLoginDelegate.onLogoutSuccess()Effect:

Connection Delegate Methods

The CometChatConnectionDelegate provides you with live events related to the WebSocket connection status. Below are the callback methods provided by the CometChatConnectionDelegate. In order to receive connection events, you must add protocol conformance CometChatConnectionDelegate as shown below:
To add the connection listener:
To remove the connection listener:
connecting() Event:Event Trigger: SDK is attempting to establish WebSocket connectionconnected() Event:Event Trigger: WebSocket connection successfully establisheddisconnected() Event:Event Trigger: WebSocket connection lostonfeatureThrottled() Event:Event Trigger: Feature rate-limited due to excessive requestsonConnectionError(error:) Event:Connection Flow:

AI Assistant Events Delegate

The AIAssistantEventsDelegate provides you with live events related to AI Assistant features. Below are the callback methods provided by the AIAssistantEventsDelegate. In order to receive AI Assistant events, you must add protocol conformance AIAssistantEventsDelegate as shown below:
To add the AI Assistant listener:
To remove the AI Assistant listener:
Event Trigger: Received via AIAssistantEventsDelegate.onAIAssistantEventReceived(_:)event (AIAssistantBaseEvent Object):Event Types: