Documentation Index Fetch the complete documentation index at: https://cometchat-22654f5b-docs-v6-beta2-flutter-uikit.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Quick Reference - Send a text message:// Send text to a user
const textMessage = new CometChat . TextMessage ( "UID" , "Hello!" , CometChat . RECEIVER_TYPE . USER );
const sent = await CometChat . sendMessage ( textMessage );
// Send media to a group
const mediaMessage = new CometChat . MediaMessage ( "GUID" , file , CometChat . MESSAGE_TYPE . IMAGE , CometChat . RECEIVER_TYPE . GROUP );
const sentMedia = await CometChat . sendMediaMessage ( mediaMessage );
Using CometChat, you can send three types of messages:
Text Message is the most common and standard message type.
Media Message , for sending photos, videos and files.
Custom Message , for sending completely custom data using JSON structures.
Interactive Message for sending end-user interactive messages of type form, card and custom interactive.
You can also send metadata along with a text, media or custom message. Think, for example, if you want to share the user’s location with every message, you can use the metadata field.
Text Message
In other words, as a sender, how do I send a text message?
To send a text message to a single user or group, you need to use the sendMessage() method and pass a TextMessage object to it.
To send custom data along with a text message, you can use the setMetadata method and pass a JSON Object to it.
let metadata = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
textMessage . setMetadata ( metadata );
let metadata : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
textMessage . setMetadata ( metadata );
To add a tag to a message you can use the setTags() method of the TextMessage Class. The setTags() method accepts a list of tags.
let tags = [ "starredMessage" ];
textMessage . setTags ( tags );
let tags : Array < String > = [ "starredMessage" ];
textMessage . setTags ( tags );
Once the text message object is ready, you need to use the sendMessage() method to send the text message to the recipient.
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "UID" ;
let messageText = "Hello world!" ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let textMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message ) => {
console . log ( "Message sent successfully:" , message );
},
( error ) => {
console . log ( "Message sending failed with error:" , error );
}
);
let receiverID = "GUID" ;
let messageText = "Hello world!" ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let textMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message ) => {
console . log ( "Message sent successfully:" , message );
},
( error ) => {
console . log ( "Message sending failed with error:" , error );
}
);
let receiverID : string = "UID" ,
messageText : string = "Hello world!" ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
textMessage : CometChat . TextMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message : CometChat . TextMessage ) => {
console . log ( "Message sent successfully:" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Message sending failed with error:" , error );
}
);
let receiverID : string = "GUID" ,
messageText : string = "Hello world!" ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
textMessage : CometChat . TextMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message : CometChat . TextMessage ) => {
console . log ( "Message sent successfully:" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Message sending failed with error:" , error );
}
);
The TextMessage class constructor takes the following parameters:
Parameter Description Required receiverID UID of the user or GUID of the group receiving the messageYES messageText The text message YES receiverType The type of the receiver- CometChat.RECEIVER_TYPE.USER or CometChat.RECEIVER_TYPE.GROUP YES
When a text message is sent successfully, the response will include a TextMessage object which includes all information related to the sent message.
On Success — Returns a TextMessage object:TextMessage Object: Parameter Type Description Sample Value idstring Unique message identifier "25182"conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"textstring Message text content "Hello world!"typestring Message type "text"categorystring Message category "message"receiverIdstring UID of the receiver "cometchat-uid-3"receiverTypestring Type of receiver "user"sentAtnumber Unix timestamp when sent 1771320772updatedAtnumber Unix timestamp of last update 1771320772senderobject Sender user details See below ↓ receiverobject Receiver user details See below ↓ dataobject Additional message data See below ↓ reactionsarray Message reactions []mentionedUsersarray Users mentioned in message []mentionedMeboolean Whether logged-in user is mentioned falsemetadataobject Custom metadata {"@injected": {"extensions": {"link-preview": {"links": []}}}}
sender Object:Parameter Type Description Sample Value uidstring Unique identifier of the sender "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771320632hasBlockedMeboolean Whether sender has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked sender falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
receiver Object:Parameter Type Description Sample Value uidstring Unique identifier of the receiver "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771320647hasBlockedMeboolean Whether receiver has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked receiver falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
data Object:Parameter Type Description Sample Value textstring Message text "Hello world!"resourcestring SDK resource identifier "REACT_NATIVE-4_0_13-..."entitiesobject Sender and receiver entities See below ↓ metadataobject Injected metadata from extensions {"@injected": {"extensions": {"link-preview": {"links": []}}}}moderationobject Moderation status See below ↓
data.entities Object:Parameter Type Description Sample Value senderobject Sender entity wrapper See below ↓ receiverobject Receiver entity wrapper See below ↓
data.entities.sender Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Sender user details See below ↓
data.entities.sender.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771320632tagsarray User tags []
data.entities.receiver Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Receiver user details See below ↓
data.entities.receiver.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771320647conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"tagsarray User tags []
data.moderation Object:Parameter Type Description Sample Value statusstring Moderation status "pending"
Set Quoted Message Id
To set a quoted message ID for a message, use the setQuotedMessageId() method of the TextMessage class. This method accepts the ID of the message to be quoted.
textMessage . setQuotedMessageId ( 10 );
textMessage . setQuotedMessageId ( 10 );
Once the text message object is ready, you need to use the sendMessage() method to send the text message to the recipient.
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "UID" ;
let messageText = "Hello world!" ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let textMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message ) => {
console . log ( "Message sent successfully:" , message );
},
( error ) => {
console . log ( "Message sending failed with error:" , error );
}
);
let receiverID = "GUID" ;
let messageText = "Hello world!" ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let textMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message ) => {
console . log ( "Message sent successfully:" , message );
},
( error ) => {
console . log ( "Message sending failed with error:" , error );
}
);
let receiverID : string = "UID" ,
messageText : string = "Hello world!" ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
textMessage : CometChat . TextMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message : CometChat . TextMessage ) => {
console . log ( "Message sent successfully:" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Message sending failed with error:" , error );
}
);
let receiverID : string = "GUID" ,
messageText : string = "Hello world!" ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
textMessage : CometChat . TextMessage = new CometChat . TextMessage (
receiverID ,
messageText ,
receiverType
);
CometChat . sendMessage ( textMessage ). then (
( message : CometChat . TextMessage ) => {
console . log ( "Message sent successfully:" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Message sending failed with error:" , error );
}
);
The TextMessage class constructor takes the following parameters:
Parameter Description Required receiverID UID of the user or GUID of the group receiving the messageRequired messageText The text message Required receiverType The type of the receiver - CometChat.RECEIVER_TYPE.USER or CometChat.RECEIVER_TYPE.GROUP Required
When a text message is sent successfully, the response will include a TextMessage object which includes all information related to the sent message.
In other words, as a sender, how do I send a media message like photos, videos & files?
To send a media message to any user or group, you need to use the sendMediaMessage() method and pass a MediaMessage object to it.
To send custom data along with a media message, you can use the setMetadata method and pass a JSON Object to it.
let metadata = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
mediaMessage . setMetadata ( metadata );
let metadata : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
mediaMessage . setMetadata ( metadata );
Add Caption (Text along with Media Message)
To send a caption with a media message, you can use the setCaption method and pass text to it.
let caption = "Random Caption" ;
mediaMessage . setCaption ( caption );
let caption : string = "Random Caption" ;
mediaMessage . setCaption ( caption );
To add a tag to a message you can use the setTags() method of the MediaMessage Class. The setTags() method accepts a list of tags.
let tags = [ "starredMessage" ];
mediaMessage . setTags ( tags );
let tags : Array < String > = [ "starredMessage" ];
mediaMessage . setTags ( tags );
There are 2 ways you can send Media Messages using the CometChat SDK:
1. By Providing the File
You can directly share the file object while creating an object of the MediaMessage class. When the media message is sent using the sendMediaMessage() method, this file is then uploaded to CometChat servers and the URL of the file is sent in the success response of the sendMediaMessage() function.
Getting the file Object: You can use different React Native packages for sending media messages. We demonstrate how to send images using CometChat.
ImagePicker . showImagePicker ( options , ( response ) => {
if ( response . didCancel ) {
console . log ( 'User cancelled photo picker' );
} else if ( response . error ) {
console . log ( 'ImagePicker Error: ' , response . error );
} else if ( response . customButton ) {
console . log ( 'User tapped custom button: ' , response . customButton );
} else {
console . log ( 'ImagePicker Response: ' , response );
if ( Platform . OS === 'ios' && response . fileName != undefined ) {
var ext = response . fileName . split ( '.' )[ 1 ]. toLowerCase ();
var type = this . getMimeType ( ext );
var name = response . fileName ;
} else {
var type = response . type ;
var name = 'Camera_001.jpeg' ;
}
var file = {
name: Platform . OS === "android" ? response . fileName : name ,
type: Platform . OS === "android" ? response . type : type ,
uri: Platform . OS === "android" ? response . uri : response . uri . replace ( "file://" , "" ),
}
console . log ( 'file: ' , file );
this . setState ({ mediaMsg: file })
}
});
}
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "UID" ;
let messageType = CometChat . MESSAGE_TYPE . FILE ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
this . state . mediaMsg ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message ) => {
console . log ( "Media message sent successfully" , message );
},
( error ) => {
console . log ( "Media message sending failed with error" , error );
}
);
let receiverID = "GUID" ;
let messageType = CometChat . MESSAGE_TYPE . FILE ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
this . state . mediaMsg ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message ) => {
console . log ( "Media message sent successfully" , message );
},
( error ) => {
console . log ( "Media message sending failed with error" , error );
}
);
let receiverID : string = "UID" ,
messageType : string = CometChat . MESSAGE_TYPE . FILE ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
this . state . mediaMsg ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message : CometChat . MediaMessage ) => {
console . log ( "Media message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Media message sending failed with error" , error );
}
);
let receiverID : string = "GUID" ,
messageType : string = CometChat . MESSAGE_TYPE . FILE ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
this . state . mediaMsg ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message : CometChat . MediaMessage ) => {
console . log ( "Media message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Media message sending failed with error" , error );
}
);
The MediaMessage class constructor takes the following parameters:
Parameter Description Required receiverId The UID or GUID of the recipient. YES file The file object to be sent YES messageType The type of the message that needs to be sent which in this case can be: 1.CometChat.MESSAGE_TYPE.IMAGE 2.CometChat.MESSAGE_TYPE.VIDEO 3.CometChat.MESSAGE_TYPE.AUDIO 4.CometChat.MESSAGE_TYPE.FILE YES receiverType The type of the receiver to whom the message is to be sent. 1. CometChat.RECEIVER_TYPE.USER 2. CometChat.RECEIVER_TYPE.GROUP YES
On Success — Returns a MediaMessage object:MediaMessage Object: Parameter Type Description Sample Value idstring Unique message identifier "25189"conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"typestring Media type "image"categorystring Message category "message"receiverIdstring UID of the receiver "cometchat-uid-3"receiverTypestring Type of receiver "user"sentAtnumber Unix timestamp when sent 1771323061updatedAtnumber Unix timestamp of last update 1771323061senderobject Sender user details See below ↓ receiverobject Receiver user details See below ↓ dataobject Additional message data See below ↓ reactionsarray Message reactions []mentionedUsersarray Users mentioned in message []mentionedMeboolean Whether logged-in user is mentioned false
sender Object:Parameter Type Description Sample Value uidstring Unique identifier of the sender "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323060hasBlockedMeboolean Whether sender has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked sender falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
receiver Object:Parameter Type Description Sample Value uidstring Unique identifier of the receiver "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968hasBlockedMeboolean Whether receiver has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked receiver falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
data Object:Parameter Type Description Sample Value typestring Media type "image"categorystring Message category "message"urlstring URL to the uploaded media file "https://data-in.cometchat.io/.../c35f9734fc20947b7456bbea68126f99.png"resourcestring SDK resource identifier "REACT_NATIVE-4_0_14-..."attachmentsarray Media attachments See below ↓ entitiesobject Sender and receiver entities See below ↓ moderationobject Moderation status {"status": "pending"}
data.attachments Array (per item):Parameter Type Description Sample Value urlstring URL to the attachment "https://data-in.cometchat.io/.../c35f9734fc20947b7456bbea68126f99.png"namestring File name "1770616246_260562078_3832605b5c8a337ac672b0c60933d208.png"mimeTypestring MIME type "image/png"extensionstring File extension "png"sizenumber File size in bytes 2295572
data.entities Object:Parameter Type Description Sample Value senderobject Sender entity wrapper See below ↓ receiverobject Receiver entity wrapper See below ↓
data.entities.sender Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Sender user details See below ↓
data.entities.sender.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323060tagsarray User tags []
data.entities.receiver Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Receiver user details See below ↓
data.entities.receiver.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"tagsarray User tags []
2. By Providing the URL of the File
The second way to send media messages using the CometChat SDK is to provide the SDK with the URL of any file that is hosted on your servers or any cloud storage. To achieve this you will have to make use of the Attachment class. For more information, you can refer to the below code snippet:
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "cometchat-uid-2" ;
let messageType = CometChat . MESSAGE_TYPE . IMAGE ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let file = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment = new CometChat . Attachment ( file );
mediaMessage . setAttachment ( attachment );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error ) => {
console . log ( "error in sending message" , error );
}
);
let receiverID = "cometchat-guid-1" ;
let messageType = CometChat . MESSAGE_TYPE . IMAGE ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let file = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment = new CometChat . Attachment ( file );
mediaMessage . setAttachment ( attachment );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error ) => {
console . log ( "error in sending message" , error );
}
);
let receiverID : string = "cometchat-uid-2" ,
messageType : string = CometChat . MESSAGE_TYPE . IMAGE ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let file : Object = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment : CometChat . Attachment = new CometChat . Attachment ( file );
mediaMessage . setAttachment ( attachment );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage : CometChat . MediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error : CometChat . CometChatException ) => {
console . log ( "error in sending message" , error );
}
);
let receiverID : string = "cometchat-guid-1" ,
messageType : string = CometChat . MESSAGE_TYPE . IMAGE ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let file : Object = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment : CometChat . Attachment = new CometChat . Attachment ( file );
mediaMessage . setAttachment ( attachment );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage : CometChat . MediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error : CometChat . CometChatException ) => {
console . log ( "error in sending message" , error );
}
);
When a media message is sent successfully, the response will include a MediaMessage object which includes all information related to the sent message.
On Success — Returns a MediaMessage object:MediaMessage Object: Parameter Type Description Sample Value idstring Unique message identifier "25189"conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"typestring Media type "image"categorystring Message category "message"receiverIdstring UID of the receiver "cometchat-uid-3"receiverTypestring Type of receiver "user"sentAtnumber Unix timestamp when sent 1771323061updatedAtnumber Unix timestamp of last update 1771323061senderobject Sender user details See below ↓ receiverobject Receiver user details See below ↓ dataobject Additional message data See below ↓ reactionsarray Message reactions []mentionedUsersarray Users mentioned in message []mentionedMeboolean Whether logged-in user is mentioned false
sender Object:Parameter Type Description Sample Value uidstring Unique identifier of the sender "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323060hasBlockedMeboolean Whether sender has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked sender falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
receiver Object:Parameter Type Description Sample Value uidstring Unique identifier of the receiver "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968hasBlockedMeboolean Whether receiver has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked receiver falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
data Object:Parameter Type Description Sample Value typestring Media type "image"categorystring Message category "message"urlstring URL to the media file "https://data-in.cometchat.io/.../c35f9734fc20947b7456bbea68126f99.png"resourcestring SDK resource identifier "REACT_NATIVE-4_0_14-..."attachmentsarray Media attachments See below ↓ entitiesobject Sender and receiver entities See below ↓ moderationobject Moderation status {"status": "pending"}
data.attachments Array (per item):Parameter Type Description Sample Value urlstring URL to the attachment "https://pngimg.com/uploads/mario/mario_PNG125.png"namestring File name "mario"mimeTypestring MIME type "image/png"extensionstring File extension "png"
data.entities Object:Parameter Type Description Sample Value senderobject Sender entity wrapper See below ↓ receiverobject Receiver entity wrapper See below ↓
data.entities.sender Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Sender user details See below ↓
data.entities.sender.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323060tagsarray User tags []
data.entities.receiver Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Receiver user details See below ↓
data.entities.receiver.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"tagsarray User tags []
Starting version 3.0.9 & above the SDK supports sending multiple attachments in a single media message. As in the case of a single attachment in a media message, there are two ways you can send Media Messages using the CometChat SDK:
1. By Providing an Array of Files
You can now share an array of files while creating an object of the MediaMessage class. When the media message is sent using the sendMediaMessage() method, the files are uploaded to the CometChat servers & the URL of the files is sent in the success response of the sendMediaMessage() method.
Getting the file Object: You can use different React Native packages for sending media messages. We demonstrate how to send images using CometChat.
let options = {
selectionLimit: 0
};
ImagePicker . showImagePicker ( options , ( response ) => {
if ( response . didCancel ) {
console . log ( 'User cancelled photo picker' );
} else if ( response . error ) {
console . log ( 'ImagePicker Error: ' , response . error );
} else if ( response . customButton ) {
console . log ( 'User tapped custom button: ' , response . customButton );
} else {
console . log ( 'ImagePicker Response: ' , response );
let files = response . assets ;
let allFiles = [];
if ( files && files . length > 0 ) {
console . log ( "files" , files );
files . forEach ( file => {
if ( Platform . OS === 'ios' && file . fileName !== undefined ) {
name = file . fileName ;
type = file . type ;
} else {
type = file . type ;
name = 'Camera_001.jpeg' ;
}
if ( mediaType == 'video' ) {
type = 'video/quicktime' ;
name = 'Camera_002.mov' ;
}
let tempFile = {
name: name ,
type:
Platform . OS === 'android' && mediaType != 'video'
? file . type
: type ,
uri:
Platform . OS === 'android'
? file . uri
: file . uri . replace ( 'file://' , '' ),
size: file . fileSize
};
allFiles . push ( tempFile );
});
this . props . sendMediaMessage (
allFiles ,
mediaType === 'photo'
? CometChat . MESSAGE_TYPE . IMAGE
: CometChat . MESSAGE_TYPE . VIDEO ,
);
}
}
});
}
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "UID" ;
let messageType = CometChat . MESSAGE_TYPE . FILE ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
files ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message ) => {
console . log ( "Media message sent successfully" , message );
},
( error ) => {
console . log ( "Media message sending failed with error" , error );
}
);
let receiverID = "GUID" ;
let messageType = CometChat . MESSAGE_TYPE . FILE ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
this . state . mediaMsg ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message ) => {
console . log ( "Media message sent successfully" , message );
},
( error ) => {
console . log ( "Media message sending failed with error" , error );
}
);
let receiverID : string = "UID" ,
messageType : string = CometChat . MESSAGE_TYPE . FILE ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
this . state . mediaMsg ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message : CometChat . MediaMessage ) => {
console . log ( "Media message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Media message sending failed with error" , error );
}
);
let receiverID : string = "GUID" ,
messageType : string = CometChat . MESSAGE_TYPE . FILE ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
this . state . mediaMsg ,
messageType ,
receiverType
);
CometChat . sendMediaMessage ( mediaMessage ). then (
( message : CometChat . MediaMessage ) => {
console . log ( "Media message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "Media message sending failed with error" , error );
}
);
The MediaMessage class constructor takes the following parameters:
Parameter Description receiverId The UID or GUID of the recipient. files An array of files. messageType The type of the message that needs to be sent which in this case can be: 1.CometChat.MESSAGE_TYPE.IMAGE 2.CometChat.MESSAGE_TYPE.VIDEO 3.CometChat.MESSAGE_TYPE.AUDIO 4.CometChat.MESSAGE_TYPE.FILE receiverType The type of the receiver to whom the message is to be sent. 1. CometChat.RECEIVER_TYPE.USER2. CometChat.RECEIVER_TYPE.GROUP
2. By Providing the URL of Multiple Files
The second way to send multiple attachments in a single media message using the CometChat SDK is to provide the SDK with the URL of multiple files that are hosted on your servers or any cloud storage. To achieve this you will have to make use of the Attachment class. For more information, you can refer to the below code snippet:
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "cometchat-uid-2" ;
let messageType = CometChat . MESSAGE_TYPE . IMAGE ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let attachment1 = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment2 = {
name: "jaguar" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/jaguar/jaguar_PNG20759.png" ,
};
let attachments = [];
attachments . push ( new CometChat . Attachment ( attachment1 ));
attachments . push ( new CometChat . Attachment ( attachment2 ));
mediaMessage . setAttachments ( attachments );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error ) => {
console . log ( "error in sending message" , error );
}
);
let receiverID = "cometchat-guid-1" ;
let messageType = CometChat . MESSAGE_TYPE . IMAGE ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let mediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let attachment1 = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment2 = {
name: "jaguar" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/jaguar/jaguar_PNG20759.png" ,
};
let attachments = [];
attachments . push ( new CometChat . Attachment ( attachment1 ));
attachments . push ( new CometChat . Attachment ( attachment2 ));
mediaMessage . setAttachments ( attachments );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error ) => {
console . log ( "error in sending message" , error );
}
);
let receiverID : string = "cometchat-uid-2" ,
messageType : string = CometChat . MESSAGE_TYPE . IMAGE ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let attachment1 : Object = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment2 : Object = {
name: "jaguar" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/jaguar/jaguar_PNG20759.png" ,
};
let attachments : Array < CometChat . Attachment > = [];
attachments . push ( new CometChat . Attachment ( attachment1 ));
attachments . push ( new CometChat . Attachment ( attachment2 ));
mediaMessage . setAttachments ( attachments );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage : CometChat . MediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error : CometChat . CometChatException ) => {
console . log ( "error in sending message" , error );
}
);
let receiverID : string = "cometchat-guid-1" ,
messageType : string = CometChat . MESSAGE_TYPE . IMAGE ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
mediaMessage : CometChat . MediaMessage = new CometChat . MediaMessage (
receiverID ,
"" ,
messageType ,
receiverType
);
let attachment1 : Object = {
name: "mario" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/mario/mario_PNG125.png" ,
};
let attachment2 : Object = {
name: "jaguar" ,
extension: "png" ,
mimeType: "image/png" ,
url: "https://pngimg.com/uploads/jaguar/jaguar_PNG20759.png" ,
};
let attachments : Array < CometChat . Attachment > = [];
attachments . push ( new CometChat . Attachment ( attachment1 ));
attachments . push ( new CometChat . Attachment ( attachment2 ));
mediaMessage . setAttachments ( attachments );
CometChat . sendMediaMessage ( mediaMessage ). then (
( mediaMessage : CometChat . MediaMessage ) => {
console . log ( "message" , mediaMessage );
},
( error : CometChat . CometChatException ) => {
console . log ( "error in sending message" , error );
}
);
When a media message is sent successfully, the response will include a MediaMessage object which includes all information related to the sent message.
You can use the setMetadata(), setCaption() & setTags() methods to add metadata, caption and tags respectively in exactly the same way as it is done while sending a single file or attachment in a Media Message.
On Success — Returns a MediaMessage object with multiple attachments:MediaMessage Object: Parameter Type Description Sample Value idstring Unique message identifier "25189"conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"typestring Media type "image"categorystring Message category "message"receiverIdstring UID of the receiver "cometchat-uid-3"receiverTypestring Type of receiver "user"sentAtnumber Unix timestamp when sent 1771323061updatedAtnumber Unix timestamp of last update 1771323061senderobject Sender user details See below ↓ receiverobject Receiver user details See below ↓ dataobject Additional message data See below ↓ reactionsarray Message reactions []mentionedUsersarray Users mentioned in message []mentionedMeboolean Whether logged-in user is mentioned false
sender Object:Parameter Type Description Sample Value uidstring Unique identifier of the sender "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323060hasBlockedMeboolean Whether sender has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked sender falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
receiver Object:Parameter Type Description Sample Value uidstring Unique identifier of the receiver "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968hasBlockedMeboolean Whether receiver has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked receiver falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
data Object:Parameter Type Description Sample Value typestring Media type "image"categorystring Message category "message"urlstring URL to the primary media file "https://data-in.cometchat.io/.../c35f9734fc20947b7456bbea68126f99.png"resourcestring SDK resource identifier "REACT_NATIVE-4_0_14-..."attachmentsarray Media attachments See below ↓ entitiesobject Sender and receiver entities See below ↓ moderationobject Moderation status {"status": "pending"}
data.attachments Array (per item):Parameter Type Description Sample Value urlstring URL to the attachment "https://pngimg.com/uploads/mario/mario_PNG125.png"namestring File name "mario"mimeTypestring MIME type "image/png"extensionstring File extension "png"
Example with multiple attachments:
Attachment 1: {"name": "mario", "extension": "png", "mimeType": "image/png", "url": "https://pngimg.com/uploads/mario/mario_PNG125.png"}
Attachment 2: {"name": "jaguar", "extension": "png", "mimeType": "image/png", "url": "https://pngimg.com/uploads/jaguar/jaguar_PNG20759.png"}
data.entities Object:Parameter Type Description Sample Value senderobject Sender entity wrapper See below ↓ receiverobject Receiver entity wrapper See below ↓
data.entities.sender Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Sender user details See below ↓
data.entities.sender.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323060tagsarray User tags []
data.entities.receiver Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Receiver user details See below ↓
data.entities.receiver.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"tagsarray User tags []
Custom Message
In other words, as a sender, how do I send a custom message like location coordinates?
CometChat allows you to send custom messages which are neither text nor media messages.
In order to send a custom message, you need to use the sendCustomMessage() method. The sendCustomMessage() method takes an object of the CustomMessage which can be obtained using the below constructor.
let customMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
let customMessage : CometChat . CustomMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
The above constructor helps you create a custom message with the message type set to whatever is passed to the constructor and the category set to custom.
The parameters involved are:
Parameter Description receiverIdThe unique ID of the user or group to which the message is to be sent receiverTypeType of the receiver i.e user or group customTypeCustom message type that you need to set customDataThe data to be passed as the message in the form of a JSON Object
You can also use the subType field of the CustomMessage class to set a specific type for the custom message. This can be achieved using the setSubtype() method.
To add a tag to a message you can use the setTags() method of the CustomMessage Class. The setTags() method accepts a list of tags.
let tags = [ "starredMessage" ];
customMessage . setTags ( tags );
let tags : Array < String > = [ "starredMessage" ];
customMessage . setTags ( tags );
Once the object of CustomMessage class is ready you can send the custom message using the sendCustomMessage() method.
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "UID" ;
let customData = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
let customType = "location" ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let customMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
CometChat . sendCustomMessage ( customMessage ). then (
( message ) => {
console . log ( "custom message sent successfully" , message );
},
( error ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID = "GUID" ;
let customData = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
let customType = "location" ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let customMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
CometChat . sendCustomMessage ( customMessage ). then (
( message ) => {
console . log ( "custom message sent successfully" , message );
},
( error ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID : string = "UID" ,
customData : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
},
customType : string = "location" ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
customMessage : CometChat . CustomMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
CometChat . sendCustomMessage ( customMessage ). then (
( message : CometChat . CustomMessage ) => {
console . log ( "custom message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID : string = "GUID" ,
customData : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
},
customType : string = "location" ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
customMessage : CometChat . CustomMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
CometChat . sendCustomMessage ( customMessage ). then (
( message : CometChat . CustomMessage ) => {
console . log ( "custom message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "custom message sending failed with error" , error );
}
);
The above sample explains how custom messages can be used to share the location with a user. The same can be achieved for groups.
On success, you will receive an object of the CustomMessage class.
On Success — Returns a CustomMessage object:CustomMessage Object: Parameter Type Description Sample Value idstring Unique message identifier "25190"conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"typestring Custom message type "location"categorystring Message category "custom"receiverIdstring UID of the receiver "cometchat-uid-3"receiverTypestring Type of receiver "user"sentAtnumber Unix timestamp when sent 1771323234updatedAtnumber Unix timestamp of last update 1771323234customDataobject Custom payload data See below ↓ senderobject Sender user details See below ↓ receiverobject Receiver user details See below ↓ dataobject Additional message data See below ↓ reactionsarray Message reactions []mentionedUsersarray Users mentioned in message []mentionedMeboolean Whether logged-in user is mentioned falsemetadataobject Custom metadata {"@injected": {"extensions": {"link-preview": {"links": []}}}}
customData Object:Parameter Type Description Sample Value latitudestring Latitude coordinate "50.6192171633316"longitudestring Longitude coordinate "-72.68182268750002"
sender Object:Parameter Type Description Sample Value uidstring Unique identifier of the sender "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323089hasBlockedMeboolean Whether sender has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked sender falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
receiver Object:Parameter Type Description Sample Value uidstring Unique identifier of the receiver "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968hasBlockedMeboolean Whether receiver has blocked logged-in user falseblockedByMeboolean Whether logged-in user has blocked receiver falsedeactivatedAtnumber Deactivation timestamp (0 if active) 0tagsarray User tags []
data Object:Parameter Type Description Sample Value textstring Fallback text "Sent a custom message"resourcestring SDK resource identifier "REACT_NATIVE-4_0_14-..."customDataobject Custom payload data {"latitude": "50.6192171633316", "longitude": "-72.68182268750002"}entitiesobject Sender and receiver entities See below ↓ metadataobject Injected metadata from extensions {"@injected": {"extensions": {"link-preview": {"links": []}}}}moderationobject Moderation status {"status": "pending"}
data.entities Object:Parameter Type Description Sample Value senderobject Sender entity wrapper See below ↓ receiverobject Receiver entity wrapper See below ↓
data.entities.sender Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Sender user details See below ↓
data.entities.sender.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-2"namestring Display name "George Alan"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"statusstring Online status "online"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771323089tagsarray User tags []
data.entities.receiver Object:Parameter Type Description Sample Value entityTypestring Type of entity "user"entityobject Receiver user details See below ↓
data.entities.receiver.entity Object:Parameter Type Description Sample Value uidstring Unique identifier "cometchat-uid-3"namestring Display name "Nancy Grace"avatarstring URL to avatar image "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp"statusstring Online status "offline"rolestring User role "default"lastActiveAtnumber Unix timestamp of last activity 1771322968conversationIdstring Conversation identifier "cometchat-uid-2_user_cometchat-uid-3"tagsarray User tags []
Update Conversation
How can I decide whether the custom message should update the last message of a conversation?
By default, a custom message will update the last message of a conversation. If you wish to not update the last message of the conversation when a custom message is sent, please use shouldUpdateConversation(value: boolean) method of the Custom Message.
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "UID" ;
let customData = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
let customType = "location" ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let customMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . shouldUpdateConversation ( false );
CometChat . sendCustomMessage ( customMessage ). then (
( message ) => {
console . log ( "custom message sent successfully" , message );
},
( error ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID = "GUID" ;
let customData = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
let customType = "location" ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let customMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . shouldUpdateConversation ( false );
CometChat . sendCustomMessage ( customMessage ). then (
( message ) => {
console . log ( "custom message sent successfully" , message );
},
( error ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID : string = "UID" ,
customData : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
},
customType : string = "location" ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
customMessage : CometChat . CustomMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . shouldUpdateConversation ( false );
CometChat . sendCustomMessage ( customMessage ). then (
( message : CometChat . CustomMessage ) => {
console . log ( "custom message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID : string = "GUID" ,
customData : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
},
customType : string = "location" ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
customMessage : CometChat . CustomMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . shouldUpdateConversation ( false );
CometChat . sendCustomMessage ( customMessage ). then (
( message : CometChat . CustomMessage ) => {
console . log ( "custom message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "custom message sending failed with error" , error );
}
);
Custom Notification Body
How can I customize the notification body of a custom message?
To add a custom notification body for Push, Email & SMS notification of a custom message you can use the setConversationText(text: string) method of the CustomMessage class.
To User
To Group
TypeScript (User)
TypeScript (Group)
let receiverID = "UID" ;
let customData = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
let customType = "location" ;
let receiverType = CometChat . RECEIVER_TYPE . USER ;
let customMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . setConversationText ( "Custom notification body" );
CometChat . sendCustomMessage ( customMessage ). then (
( message ) => {
console . log ( "custom message sent successfully" , message );
},
( error ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID = "GUID" ;
let customData = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
};
let customType = "location" ;
let receiverType = CometChat . RECEIVER_TYPE . GROUP ;
let customMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . setConversationText ( "Custom notification body" );
CometChat . sendCustomMessage ( customMessage ). then (
( message ) => {
console . log ( "custom message sent successfully" , message );
},
( error ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID : string = "UID" ,
customData : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
},
customType : string = "location" ,
receiverType : string = CometChat . RECEIVER_TYPE . USER ,
customMessage : CometChat . CustomMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . setConversationText ( "Custom notification body" );
CometChat . sendCustomMessage ( customMessage ). then (
( message : CometChat . CustomMessage ) => {
console . log ( "custom message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "custom message sending failed with error" , error );
}
);
let receiverID : string = "GUID" ,
customData : Object = {
latitude: "50.6192171633316" ,
longitude: "-72.68182268750002" ,
},
customType : string = "location" ,
receiverType : string = CometChat . RECEIVER_TYPE . GROUP ,
customMessage : CometChat . CustomMessage = new CometChat . CustomMessage (
receiverID ,
receiverType ,
customType ,
customData
);
customMessage . setConversationText ( "Custom notification body" );
CometChat . sendCustomMessage ( customMessage ). then (
( message : CometChat . CustomMessage ) => {
console . log ( "custom message sent successfully" , message );
},
( error : CometChat . CometChatException ) => {
console . log ( "custom message sending failed with error" , error );
}
);
It is also possible to send interactive messages from CometChat. To learn more, see Interactive Messages .
Use appropriate message types (TEXT, IMAGE, VIDEO, AUDIO, FILE) for media messages
Add metadata to messages when you need to pass additional context (e.g., location, user preferences)
Use tags to categorize messages for easier filtering and retrieval
Set shouldUpdateConversation(false) for background or system-level custom messages that shouldn’t appear in conversation lists
Use setConversationText() to provide meaningful notification text for custom messages
Message not sending: Ensure the user is logged in and CometChat is initialized
Media upload fails: Check file size limits and ensure the file object has correct name, type, and uri properties
Custom message not appearing: Verify the receiver UID/GUID is correct and the receiver type matches
Notifications not showing custom text: Make sure setConversationText() is called before sending the message
Next Steps
Receive Messages Listen for real-time messages and fetch missed messages
Edit a Message Edit previously sent messages
Interactive Messages Send forms, cards, and custom interactive messages
Typing Indicators Show real-time typing status in conversations