Twilio Chat API,getUnconsumedMessagesCount始终为0

时间:2017-01-29 07:33:57

标签: javascript angular twilio twilio-api

我试图获取特定频道中特定成员的未读消息数。要做到这一点,我希望使用documentation中定义的 channel.getUnconsumedMessagesCount()

myChannel.join()
  .then(function(c) {
    console.log('Joined channel ' + c.sid);
    return myChannel.getUnconsumedMessagesCount();
  })
  .then(m => {
    console.log('current count unread: ' + m);
  });

未读计数始终返回0.要进行测试,我会执行以下操作:

  1. 用户2在另一个Chrome标签页中向myChannel提交消息
  2. 用户2 myChannel获取来自(1)via的消息 .on(' messageAdded',[...])
  3. 刷新用户1 chrome标签,并获取getUnconsumedMessagesCount 值0
  4. 如果我为user1调用myChannel.getMessages(),我会看到来自user2的消息
  5. 最初我调用了.getUnconsumedMessagesCount()而没有首先执行join(),我认为这可能是问题,但即使加入仍然没有。

2 个答案:

答案 0 :(得分:4)

在获得UnconsumedMessagesCount之前,您需要手动设置上次阅读的消息Send a Consumption Report

像这样的东西(JS)

 channel.getMessages(1).then(function (messages) {
    var last_message_index = messages.items[0].index;
    channel.updateLastConsumedMessageIndex(last_message_index);
 });

答案 1 :(得分:4)

我在javascript SDK中遇到同样的问题,它始终返回0。

我最终做了以下工作

const count = channel.getMessagesCount();
const unreadCount = channel.lastConsumedMessageIndex === null ? count : count - channel.lastConsumedMessageIndex - 1

我还注意到,在channel.lastConsumedMessageIndex

中实际返回该信息之前,使用任何函数来设置所消耗的消息可能需要一整分钟。