Quick Reference for AI Agents & Developers
- Set delegate:
CometChat.messagedelegate = self(conform toCometChatMessageDelegate) - Protocol: Implement
CometChatMessageDelegatein your view controller - Delegate methods:
onTextMessageReceived(_:),onMediaMessageReceived(_:),onCustomMessageReceived(_:) - Missed messages: Use
MessagesRequestwithsetMessageId()to fetch messages received while offline - Related: Send Message · Typing Indicators · Messaging Overview
- Adding a listener to receive real-time messages when your app is running
- Calling a method to retrieve missed messages when your app was not running
Object Structures
For complete object structure definitions, see Send Message - Object Structures:- TextMessage Object
- MediaMessage Object
- CustomMessage Object
- User Object
- Group Object
- Attachment Object
- CometChatException Object
Real-time Messages
In other words, as a recipient, how do I receive messages when my app is running? In order to receive incoming messages, you must add protocol conformanceCometChatMessageDelegate as Shown Below :
- Swift
- Objective C
viewDidLoad() as CometChat.messagedelegate = self
Sample Payloads - onTextMessageReceived
Sample Payloads - onTextMessageReceived
- Request
- Success Response
- Error Response
Delegate Method:
CometChatMessageDelegate.onTextMessageReceived(textMessage:)The delegate method fires when a TextMessage is received in real-time.
Sample Payloads - onMediaMessageReceived
Sample Payloads - onMediaMessageReceived
- Request
- Success Response
- Error Response
Delegate Method:
CometChatMessageDelegate.onMediaMessageReceived(mediaMessage:)The delegate method fires when a MediaMessage is received in real-time.
Sample Payloads - onCustomMessageReceived
Sample Payloads - onCustomMessageReceived
- Request
- Success Response
- Error Response
Delegate Method:
CometChatMessageDelegate.onCustomMessageReceived(customMessage:)The delegate method fires when a CustomMessage is received in real-time.
Missed Messages
In other words, as a recipient, how do I receive messages that I missed when my app was not running? For most cases, you will need to add functionality to load missed messages. If you’re building an on-demand or live streaming app, you may choose to skip this and fetch message history instead. Using the sameMessagesRequest class and the filters provided by the MessagesRequestBuilder class, you can fetch the message that we sent to the logged-in user but were not delivered to him as he was offline. For this, you will require the Id of the last message received. You can either maintain it at your end or use the getLastDeliveredMessageId() method provided by the CometChat class. This Id needs to be passed to the setMessageId() method of the builder class.
Now using the fetchNext() method, you can fetch all the messages that were sent to the user when he/she was offline.
Calling the fetchNext() method on the same object repeatedly allows you to fetch all the offline messages for the logged in user in a paginated manner
Fetch Missed Messages of a particular one-on-one conversation
- Swift
Sample Payloads - Fetch Missed Messages (User)
Sample Payloads - Fetch Missed Messages (User)
- Request
- Success Response
- Error Response
Method:
MessagesRequest.fetchNext()Fetch Missed Messages of a particular group conversation
- Swift
Sample Payloads - Fetch Missed Messages (Group)
Sample Payloads - Fetch Missed Messages (Group)
- Request
- Success Response
- Error Response
Method:
MessagesRequest.fetchNext()Unread Messages
In other words, as a logged-in user, how do I fetch the messages I’ve not read? Using theMessagesRequest class described above, you can fetch the unread messages for the logged-in user. In order to achieve this, you need to set the unread variable in the builder to true using the setUnread() method so that only the unread messages are fetched.
Fetch Unread Messages of a particular one-on-one conversation
- Swift
Sample Payloads - Fetch Unread Messages (User)
Sample Payloads - Fetch Unread Messages (User)
- Request
- Success Response
- Error Response
Method:
MessagesRequest.fetchPrevious()Message History
In other words, as a logged-in user, how do I fetch the complete message history?Fetch Message History of a particular one-on-one conversation
Using theMessagesRequest class and the filters for the MessagesRequestBuilder class as shown in the below code snippet, you can fetch the entire conversation between the logged in user and any particular user.
- Swift
Sample Payloads - Fetch Message History (User)
Sample Payloads - Fetch Message History (User)
- Request
- Success Response
- Error Response
Method:
MessagesRequest.fetchPrevious()BaseMessageThe list of messages received is in the form of objects of
BaseMessage class. A BaseMessage can either be a TextMessage or a MediaMessage. You can use the instanceOf operator to check the type of object.