Skip to main content
Quick Reference - Core messaging methods:
// Send a text message
const textMessage = new CometChat.TextMessage("UID", "Hello!", CometChat.RECEIVER_TYPE.USER);
await CometChat.sendMessage(textMessage);

// Listen for incoming messages
CometChat.addMessageListener("listener-id", new CometChat.MessageListener({
  onTextMessageReceived: (msg) => console.log("Text:", msg),
  onMediaMessageReceived: (msg) => console.log("Media:", msg),
  onCustomMessageReceived: (msg) => console.log("Custom:", msg),
}));
Available via: SDK | REST API | UI Kits
Messaging is one of the core features of CometChat. We’ve thoughtfully created methods to help you send, receive and fetch message history. At the minimum, you must add code for sending messages and receiving messages. Once you’ve implemented that, you can proceed to more advanced features like typing indicators and delivery & read receipts.

Send a Message

Use CometChat.sendMessage() to send a text message to a user or group. The method returns a TextMessage object on success.
On Successconsole.log("Message sent successfully:", message) returns:
{
  "reactions": [],
  "mentionedUsers": [],
  "mentionedMe": false,
  "receiverId": "cometchat-uid-3",
  "type": "text",
  "receiverType": "user",
  "category": "message",
  "data": {
    "text": "Hello",
    "resource": "REACT_NATIVE-4_0_13-398e7dd2-3481-44ed-8837-eadf1c9c6f5d-1771320626645",
    "entities": {
      "sender": {
        "entity": {
          "uid": "cometchat-uid-2",
          "name": "George Alan",
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
          "status": "online",
          "role": "default",
          "lastActiveAt": 1771320632,
          "tags": []
        },
        "entityType": "user"
      },
      "receiver": {
        "entity": {
          "uid": "cometchat-uid-3",
          "name": "Nancy Grace",
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
          "status": "online",
          "role": "default",
          "lastActiveAt": 1771320647,
          "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
          "tags": []
        },
        "entityType": "user"
      }
    },
    "metadata": {
      "@injected": {
        "extensions": {
          "link-preview": {
            "links": []
          }
        }
      }
    },
    "moderation": {
      "status": "pending"
    }
  },
  "text": "Hello",
  "id": "25182",
  "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
  "sender": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-2",
    "name": "George Alan",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
    "lastActiveAt": 1771320632,
    "role": "default",
    "status": "online",
    "tags": []
  },
  "receiver": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-3",
    "name": "Nancy Grace",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
    "lastActiveAt": 1771320647,
    "role": "default",
    "status": "online",
    "tags": []
  },
  "sentAt": 1771320772,
  "updatedAt": 1771320772,
  "metadata": {
    "@injected": {
      "extensions": {
        "link-preview": {
          "links": []
        }
      }
    }
  }
}
On Failureconsole.log("Message sending failed with error:", error) returns:
{
  "code": "ERR_NOT_LOGGED_IN",
  "name": "Not logged in",
  "message": "No user is currently logged in. Please log in before sending a message.",
  "details": {}
}

Receive Messages in Real Time

Use CometChat.addMessageListener() to listen for incoming text, media, and custom messages while your app is running.
onTextMessageReceivedconsole.log("Text message received successfully", textMessage) returns:
{
  "reactions": [],
  "mentionedUsers": [],
  "mentionedMe": false,
  "receiverId": "cometchat-uid-2",
  "type": "text",
  "receiverType": "user",
  "category": "message",
  "data": {
    "entities": {
      "receiver": {
        "entity": {
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
          "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
          "lastActiveAt": 1771320632,
          "name": "George Alan",
          "role": "default",
          "status": "online",
          "tags": [],
          "uid": "cometchat-uid-2"
        },
        "entityType": "user"
      },
      "sender": {
        "entity": {
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
          "lastActiveAt": 1771320647,
          "name": "Nancy Grace",
          "role": "default",
          "status": "online",
          "tags": [],
          "uid": "cometchat-uid-3"
        },
        "entityType": "user"
      }
    },
    "metadata": {
      "@injected": {
        "extensions": {
          "link-preview": {
            "links": []
          }
        }
      }
    },
    "moderation": {
      "status": "approved"
    },
    "resource": "REACT_NATIVE-4_0_13-6cfc6ba5-feae-42a0-a773-000d4e41a333-1771320636087",
    "text": "Hello"
  },
  "text": "Hello",
  "id": "25180",
  "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
  "sender": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-3",
    "name": "Nancy Grace",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
    "lastActiveAt": 1771320647,
    "role": "default",
    "status": "online",
    "tags": []
  },
  "receiver": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-2",
    "name": "George Alan",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
    "lastActiveAt": 1771320632,
    "role": "default",
    "status": "online",
    "tags": []
  },
  "sentAt": 1771320657,
  "updatedAt": 1771320657,
  "metadata": {
    "@injected": {
      "extensions": {
        "link-preview": {
          "links": []
        }
      }
    }
  }
}
onMediaMessageReceivedconsole.log("Media message received successfully", mediaMessage) returns:
{
  "reactions": [],
  "mentionedUsers": [],
  "mentionedMe": false,
  "receiverId": "cometchat-uid-2",
  "type": "image",
  "receiverType": "user",
  "category": "message",
  "data": {
    "attachments": [
      {
        "extension": "jpg",
        "mimeType": "image/jpeg",
        "name": "44.jpg",
        "size": 142099,
        "url": "https://data-in.cometchat.io/2748663902141719/media/1771320861_514214897_9876c9a3f300f29c8ee619765c1ad768.jpg"
      }
    ],
    "category": "message",
    "entities": {
      "receiver": {
        "entity": {
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
          "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
          "lastActiveAt": 1771320632,
          "name": "George Alan",
          "role": "default",
          "status": "online",
          "tags": [],
          "uid": "cometchat-uid-2"
        },
        "entityType": "user"
      },
      "sender": {
        "entity": {
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
          "lastActiveAt": 1771320859,
          "name": "Nancy Grace",
          "role": "default",
          "status": "offline",
          "tags": [],
          "uid": "cometchat-uid-3"
        },
        "entityType": "user"
      }
    },
    "moderation": {
      "status": "approved"
    },
    "resource": "REACT_NATIVE-4_0_13-6cfc6ba5-feae-42a0-a773-000d4e41a333-1771320636087",
    "type": "image",
    "url": "https://data-in.cometchat.io/2748663902141719/media/1771320861_514214897_9876c9a3f300f29c8ee619765c1ad768.jpg"
  },
  "id": "25183",
  "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
  "sender": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-3",
    "name": "Nancy Grace",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
    "lastActiveAt": 1771320859,
    "role": "default",
    "status": "offline",
    "tags": []
  },
  "receiver": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-2",
    "name": "George Alan",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
    "lastActiveAt": 1771320632,
    "role": "default",
    "status": "online",
    "tags": []
  },
  "sentAt": 1771320862,
  "updatedAt": 1771320862
}
onCustomMessageReceivedconsole.log("Custom message received successfully", customMessage) returns:
{
  "reactions": [],
  "mentionedUsers": [],
  "mentionedMe": false,
  "receiverId": "cometchat-uid-2",
  "type": "test-custom",
  "receiverType": "user",
  "category": "custom",
  "customData": {
    "greeting": "Hello from custom message!",
    "timestamp": 1771324022864
  },
  "data": {
    "customData": {
      "greeting": "Hello from custom message!",
      "timestamp": 1771324022864
    },
    "entities": {
      "receiver": {
        "entity": {
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
          "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
          "lastActiveAt": 1771323089,
          "name": "George Alan",
          "role": "default",
          "status": "online",
          "tags": [],
          "uid": "cometchat-uid-2"
        },
        "entityType": "user"
      },
      "sender": {
        "entity": {
          "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
          "lastActiveAt": 1771323567,
          "name": "Nancy Grace",
          "role": "default",
          "status": "offline",
          "tags": [],
          "uid": "cometchat-uid-3"
        },
        "entityType": "user"
      }
    },
    "metadata": {
      "@injected": {
        "extensions": {
          "link-preview": {
            "links": []
          }
        }
      }
    },
    "moderation": {
      "status": "approved"
    },
    "resource": "REACT_NATIVE-4_0_14-5cebfc4b-80f7-44df-8a0a-5a760ffe5239-1771321973734",
    "text": "Sent a custom message"
  },
  "id": "25191",
  "conversationId": "cometchat-uid-2_user_cometchat-uid-3",
  "sender": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-3",
    "name": "Nancy Grace",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp",
    "lastActiveAt": 1771323567,
    "role": "default",
    "status": "offline",
    "tags": []
  },
  "receiver": {
    "hasBlockedMe": false,
    "blockedByMe": false,
    "deactivatedAt": 0,
    "uid": "cometchat-uid-2",
    "name": "George Alan",
    "avatar": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp",
    "lastActiveAt": 1771323089,
    "role": "default",
    "status": "online",
    "tags": []
  },
  "sentAt": 1771324025,
  "updatedAt": 1771324025,
  "metadata": {
    "@injected": {
      "extensions": {
        "link-preview": {
          "links": []
        }
      }
    }
  }
}

Next Steps