Twilio Chat API, getUnconsumedMessagesCount always 0

匿名 (未验证) 提交于 2019-12-03 08:44:33

问题:

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.

回答1:

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);  }); 


回答2:

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



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!