Delivered and Seen Receipts

Overview

This guide covers delivered and seen receipts within a conversation.

Before you begin, make sure you added the SDK to your app and you are able to create a conversation.

NOTE: A step-by-step tutorial to build a chat application is available here.

This guide will make use of the following concepts:

Conversation Events:

  • message:delivered events that fire on a Conversation, after you are a Member
  • message:seen events that fire on a Conversation, after you are a Member

Set Message Status to Delivered

There is a method that will set a Message status to delivered. The following code snippet will set a messages's status to delivered once a message event happens in the conversation.

conversation.on('message', (sender, event) => {
    // Can't set your own message status to delivered
    if (conversation.me.id !== event.from) {
        event.delivered().then(() => {
            console.log("message event status set to delivered");
        }).catch((error)=>{
            console.error("error setting message event status to delivered ", error);
        });
    };
});

Message Delivered Receipt

Given a conversation you are already a member of, message:delivered events will be received when Message events are set to delivered in the context of the current conversation:

conversation.on('message:delivered', (data, event) => {
    console.log(event);
});

Set Message Status to Seen

There is a method that will set a Message status to seen. The following code snippet will set a messages's status to seen once a message event happens in the conversation.

conversation.on('message', (sender, event) => {
    // Can't set your own message status to seen
    if (conversation.me.id !== event.from) {
        event.seen().then(() => {
            console.log("message event status set to seen");
        }).catch((error)=>{
            console.error("error setting message event status to seen ", error);
        });
    };
});

Message Seen Receipt

Given a conversation you are already a member of, message:seen events will be received when Message events are set to seen in the context of the current conversation:

conversation.on('message:seen', (data, event) => {
    console.log(event);
});

Reference