2017-01-29 8 views
6

Я пытаюсь получить количество сообщений непрочитанных для определенного члена в определенном канале. Для этого я надеялся использовать channel.getUnconsumedMessagesCount(), как определено в documentation.Twilio Chat API, getUnconsumedMessagesCount всегда 0

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 подав сообщение мой канал в другой вкладке хромированной
  2. пользователь 2 мой канал получить обновляется с сообщением из (1) с помощью .on ('messageAdded', [...])
  3. обновления пользователя 1 таба хрома, и получить getUnconsumedMessagesCount с значением 0
  4. Если я называю myChannel.getMessages() для user1, я вижу сообщение от user2

Первоначально я назвал .getUnconsumedMessagesCount(), не делая присоединиться() первый, я думал, что это может быть проблемой, но даже присоединиться еще ничего.

+1

Извините за медленный ответ здесь. Я не вижу ничего, что вы делали неправильно, так что это может быть проблемой на стороне Twilio. Я рекомендую связаться с [Twilio support] (https://www.twilio.com/help/contact) и отправить им подробную информацию, включая SID службы чата, который вы используете. – philnash

+0

Поддержка ... о нет:/Хорошо, thx. – guiomie

ответ

3

, прежде чем вы можете получить 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); 
}); 
2

У меня та же проблема с яваскриптом SDK, где это всегда возвращается 0.

Я закончил работу, которая работает

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

Я также заметил, что с помощью какой-либо из функций, чтобы установить сообщения, потребляемые может занять до полной минуты, прежде чем на самом деле возвращения этой информации в channel.lastConsumedMessageIndex