Reputation: 5148
I'm trying to get the number of messages unread for a specific member in a specific channel. To do this I was hoping to use channel.getUnconsumedMessagesCount() as defined in the documentation.
myChannel.join()
.then(function(c) {
console.log('Joined channel ' + c.sid);
return myChannel.getUnconsumedMessagesCount();
})
.then(m => {
console.log('current count unread: ' + m);
});
The unread count always return 0. To test, I do the following:
Initially I called .getUnconsumedMessagesCount() without doing join() first, I thought this could be the issue, but even with join still nothing.
Upvotes: 7
Views: 2278
Reputation: 640
I am having the same issue with the javascript SDK where it always returns 0.
I ended up doing the following which is working
const count = channel.getMessagesCount();
const unreadCount = channel.lastConsumedMessageIndex === null ? count : count - channel.lastConsumedMessageIndex - 1
I also noticed that using any of the functions to set the messages consumed can take up to a full minute before actually returning that information in the channel.lastConsumedMessageIndex
Upvotes: 4
Reputation: 6569
before you can get UnconsumedMessagesCount you need manually set last read message (Send a Consumption Report)
something like this (JS)
channel.getMessages(1).then(function (messages) {
var last_message_index = messages.items[0].index;
channel.updateLastConsumedMessageIndex(last_message_index);
});
Upvotes: 5