Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Twilio Chat API, getUnconsumedMessagesCount always 0

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:

  1. user 2 submitting a message to myChannel in another chrome tab
  2. user 2 myChannel get's updated with the message from (1) via .on('messageAdded', [...])
  3. refresh user 1 chrome tab, and get getUnconsumedMessagesCount with value of 0
  4. If I call myChannel.getMessages() for user1, I see the message from user2

Initially I called .getUnconsumedMessagesCount() without doing join() first, I thought this could be the issue, but even with join still nothing.

like image 507
guiomie Avatar asked Jan 29 '17 07:01

guiomie


1 Answers

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);
 });
like image 120
pymen Avatar answered Oct 31 '22 11:10

pymen