Quick Reference for AI Agents & Developers// Send transient message (not persisted)
const transientMessage = new CometChat.TransientMessage(
"receiverId",
CometChat.RECEIVER_TYPE.USER, // or GROUP
{ LIVE_REACTION: "❤️" }
);
CometChat.sendTransientMessage(transientMessage);
// Receive transient messages
CometChat.addMessageListener("TRANSIENT_LISTENER", new CometChat.MessageListener({
onTransientMessageReceived: (msg) => console.log(msg.getData())
}));
Transient messages are ephemeral messages sent in real-time that are not saved anywhere. They’re perfect for live reactions, typing indicators, or any temporary data that doesn’t need to be stored.
Availability: SDKTransient messages are only received if the recipient is online. They cannot be retrieved later.
Use Cases
| Use Case | Description |
|---|
| Live Reactions | Floating hearts, thumbs up during live streams |
| Custom Typing | Advanced typing indicators with custom data |
| Presence Updates | Custom presence states beyond online/offline |
| Ephemeral Data | Any data that shouldn’t be stored |
Send a Transient Message
const receiverId = "user1";
const receiverType = CometChat.RECEIVER_TYPE.USER;
const data = { LIVE_REACTION: "heart" };
const transientMessage = new CometChat.TransientMessage(
receiverId,
receiverType,
data
);
CometChat.sendTransientMessage(transientMessage);
const receiverId = "group-123";
const receiverType = CometChat.RECEIVER_TYPE.GROUP;
const data = { LIVE_REACTION: "heart" };
const transientMessage = new CometChat.TransientMessage(
receiverId,
receiverType,
data
);
CometChat.sendTransientMessage(transientMessage);
const receiverId: string = "user1";
const receiverType: string = CometChat.RECEIVER_TYPE.USER;
const data: Object = { LIVE_REACTION: "heart" };
const transientMessage: CometChat.TransientMessage = new CometChat.TransientMessage(
receiverId,
receiverType,
data
);
CometChat.sendTransientMessage(transientMessage);
Receive Transient Messages
Listen for transient messages in real-time:
const listenerID = "TRANSIENT_LISTENER";
CometChat.addMessageListener(
listenerID,
new CometChat.MessageListener({
onTransientMessageReceived: (transientMessage) => {
const data = transientMessage.getData();
const sender = transientMessage.getSender();
console.log(`${sender.getName()} sent:`, data);
// Handle based on data type
if (data.LIVE_REACTION) {
showFloatingReaction(data.LIVE_REACTION);
}
}
})
);
// Remove listener when done
CometChat.removeMessageListener(listenerID);
TransientMessage Properties
| Property | Description |
|---|
sender | User object of the sender |
receiverId | UID or GUID of the recipient |
receiverType | USER or GROUP |
data | Custom JSON data |
Implementation Example
class LiveReactionManager {
constructor() {
this.listenerID = "live-reactions";
}
initialize() {
CometChat.addMessageListener(
this.listenerID,
new CometChat.MessageListener({
onTransientMessageReceived: (msg) => this.handleTransient(msg)
})
);
}
handleTransient(transientMessage) {
const data = transientMessage.getData();
if (data.LIVE_REACTION) {
this.showReaction(data.LIVE_REACTION, transientMessage.getSender());
}
}
sendReaction(receiverId, receiverType, reaction) {
const data = { LIVE_REACTION: reaction };
const message = new CometChat.TransientMessage(receiverId, receiverType, data);
CometChat.sendTransientMessage(message);
}
showReaction(reaction, sender) {
// Display floating reaction animation
console.log(`${sender.getName()} sent ${reaction}`);
}
cleanup() {
CometChat.removeMessageListener(this.listenerID);
}
}
// Usage
const reactionManager = new LiveReactionManager();
reactionManager.initialize();
// Send a live reaction
reactionManager.sendReaction("group-123", CometChat.RECEIVER_TYPE.GROUP, "❤️");
Next Steps