Documentation Index
Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
AI Integration Quick Reference
| Field | Value |
|---|
| Key Classes | TextMessage, MediaMessage, CustomMessage |
| Key Methods | sendMessage(), sendMediaMessage(), sendCustomMessage() |
| Receiver Types | CometChat.RECEIVER_TYPE.USER, CometChat.RECEIVER_TYPE.GROUP |
| Message Types | TEXT, IMAGE, VIDEO, AUDIO, FILE, CUSTOM |
| Prerequisites | SDK initialized, user logged in |
CometChat supports three types of messages:
| Type | Method | Use Case |
|---|
| Text | sendMessage() | Plain text messages |
| Media | sendMediaMessage() | Images, videos, audio, files |
| Custom | sendCustomMessage() | Location, polls, or any JSON data |
Text Message
Send a text message using CometChat.sendMessage() with a TextMessage object.
TypeScript (User)
JavaScript (User)
TypeScript (Group)
JavaScript (Group)
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 = "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);
}
);
Alternatively, you can use the async/await syntax:try {
const receiverID = "UID";
const messageText = "Hello world!";
const receiverType = CometChat.RECEIVER_TYPE.USER;
const textMessage = new CometChat.TextMessage(
receiverID,
messageText,
receiverType
);
const message = await CometChat.sendMessage(textMessage);
console.log("Message sent successfully:", message);
} catch (error) {
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);
}
);
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);
}
);
The TextMessage class constructor takes the following parameters:
| Parameter | Description | Required |
|---|
receiverID | UID of the user or GUID of the group receiving the message | Yes |
messageText | The text message content | Yes |
receiverType | CometChat.RECEIVER_TYPE.USER or CometChat.RECEIVER_TYPE.GROUP | Yes |
On success, sendMessage() returns a TextMessage | MediaMessage | CustomMessage | BaseMessage object containing all information related to the sent message.
Send images, videos, audio, or files using CometChat.sendMediaMessage().
There are two ways to send media messages:
- Upload a file — Pass a file object and CometChat uploads it automatically
- Send a URL — Provide a URL to media hosted on your server or cloud storage
Upload a File
Get the file using a React Native image picker and pass it to MediaMessage:
ImagePicker.showImagePicker(options, (response) => {
if (response.didCancel || response.error) return;
const file = {
name: Platform.OS === "android" ? response.fileName : response.fileName || "Camera_001.jpeg",
type: response.type,
uri: Platform.OS === "android" ? response.uri : response.uri.replace("file://", ""),
};
// Use this file object in MediaMessage
});
TypeScript (User)
JavaScript (User)
TypeScript (Group)
JavaScript (Group)
let receiverID: string = "UID",
messageType: string = CometChat.MESSAGE_TYPE.IMAGE,
receiverType: string = CometChat.RECEIVER_TYPE.USER,
mediaMessage: CometChat.MediaMessage = new CometChat.MediaMessage(
receiverID,
file,
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 = "UID";
let messageType = CometChat.MESSAGE_TYPE.IMAGE;
let receiverType = CometChat.RECEIVER_TYPE.USER;
let mediaMessage = new CometChat.MediaMessage(
receiverID,
file,
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 = "GUID",
messageType: string = CometChat.MESSAGE_TYPE.IMAGE,
receiverType: string = CometChat.RECEIVER_TYPE.GROUP,
mediaMessage: CometChat.MediaMessage = new CometChat.MediaMessage(
receiverID,
file,
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 = "GUID";
let messageType = CometChat.MESSAGE_TYPE.IMAGE;
let receiverType = CometChat.RECEIVER_TYPE.GROUP;
let mediaMessage = new CometChat.MediaMessage(
receiverID,
file,
messageType,
receiverType
);
CometChat.sendMediaMessage(mediaMessage).then(
(message) => {
console.log("Media message sent successfully", message);
},
(error) => {
console.log("Media message sending failed with error", error);
}
);
Send a URL
Send media hosted on your server or cloud storage using the Attachment class:
TypeScript (User)
JavaScript (User)
TypeScript (Group)
JavaScript (Group)
let receiverID: string = "UID",
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(
(message: CometChat.MediaMessage) => {
console.log("Media message sent successfully", message);
},
(error: CometChat.CometChatException) => {
console.log("Media message sending failed with error", error);
}
);
let receiverID = "UID";
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(
(message) => {
console.log("Media message sent successfully", message);
},
(error) => {
console.log("Media message sending failed with error", error);
}
);
let receiverID: string = "GUID",
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(
(message: CometChat.MediaMessage) => {
console.log("Media message sent successfully", message);
},
(error: CometChat.CometChatException) => {
console.log("Media message sending failed with error", error);
}
);
let receiverID = "GUID";
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(
(message) => {
console.log("Media message sent successfully", message);
},
(error) => {
console.log("Media message sending failed with error", error);
}
);
The MediaMessage class constructor takes the following parameters:
| Parameter | Description | Required |
|---|
receiverID | UID of the user or GUID of the group | Yes |
file | File object to upload, or empty string if using URL | Yes |
messageType | CometChat.MESSAGE_TYPE.IMAGE, VIDEO, AUDIO, or FILE | Yes |
receiverType | CometChat.RECEIVER_TYPE.USER or GROUP | Yes |
On success, sendMediaMessage() returns a MediaMessage object.
Add Caption
Add text along with the media:
mediaMessage.setCaption("Check out this photo!");
mediaMessage.setMetadata({ location: "Paris" });
mediaMessage.setTags(["vacation"]);
mediaMessage.setQuotedMessageId(10);
Starting version 3.0.9 & above, the SDK supports sending multiple attachments in a single media message. There are two ways:
- By providing an array of files — Pass an array of file objects and CometChat uploads them automatically.
- By providing URLs — Use the
Attachment class with multiple URLs.
Upload Multiple Files
TypeScript (User)
JavaScript (User)
TypeScript (Group)
JavaScript (Group)
let receiverID: string = "UID",
messageType: string = CometChat.MESSAGE_TYPE.FILE,
receiverType: string = CometChat.RECEIVER_TYPE.USER,
mediaMessage: CometChat.MediaMessage = new CometChat.MediaMessage(
receiverID,
files,
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 = "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: string = "GUID",
messageType: string = CometChat.MESSAGE_TYPE.FILE,
receiverType: string = CometChat.RECEIVER_TYPE.GROUP,
mediaMessage: CometChat.MediaMessage = new CometChat.MediaMessage(
receiverID,
files,
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 = "GUID";
let messageType = CometChat.MESSAGE_TYPE.FILE;
let receiverType = CometChat.RECEIVER_TYPE.GROUP;
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);
}
);
Send Multiple URLs
TypeScript (User)
JavaScript (User)
TypeScript (Group)
JavaScript (Group)
let receiverID: string = "UID",
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(
(message: CometChat.MediaMessage) => {
console.log("Media message sent successfully", message);
},
(error: CometChat.CometChatException) => {
console.log("Media message sending failed with error", error);
}
);
let receiverID = "UID";
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(
(message) => {
console.log("Media message sent successfully", message);
},
(error) => {
console.log("Media message sending failed with error", error);
}
);
let receiverID: string = "GUID",
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(
(message: CometChat.MediaMessage) => {
console.log("Media message sent successfully", message);
},
(error: CometChat.CometChatException) => {
console.log("Media message sending failed with error", error);
}
);
let receiverID = "GUID";
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(
(message) => {
console.log("Media message sent successfully", message);
},
(error) => {
console.log("Media message sending failed with error", error);
}
);
Custom Message
Send structured data that doesn’t fit text or media categories — like location coordinates, polls, or game moves.
TypeScript (User)
JavaScript (User)
TypeScript (Group)
JavaScript (Group)
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 = "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: 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);
}
);
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);
}
);
The CustomMessage class constructor takes the following parameters:
| Parameter | Description | Required |
|---|
receiverID | UID of the user or GUID of the group | Yes |
receiverType | CometChat.RECEIVER_TYPE.USER or GROUP | Yes |
customType | Your custom type string (e.g., "location", "poll") | Yes |
customData | JSON object with your custom data | Yes |
On success, sendCustomMessage() returns a CustomMessage object.
customMessage.setTags(["starredMessage"]);
Quote a Message
customMessage.setQuotedMessageId(10);
Control Conversation Update
By default, custom messages update the conversation’s last message. To prevent this:
customMessage.shouldUpdateConversation(false);
Custom Notification Text
Set custom text for push, email, and SMS notifications:
customMessage.setConversationText("Shared a location");
Next Steps
Receive Messages
Listen for incoming messages in real-time
Edit Message
Edit previously sent messages
Delete Message
Delete sent messages