Twilio SWIFT API получает потребленные сообщения всегда возвращает 0

Я хочу отобразить рядом с каналом чата количество сообщений на канале, которые были неиспользованы или непрочитаны (я предполагаю, что это означает неиспользованный канал?)

В настоящее время я отправляю сообщения на канал, на который подписаны два пользователя, в приватный чат. Затем, прежде чем открыть окно чата, я проверяю канал на наличие неиспользованных сообщений, но он всегда сообщает 0 сообщений, даже если я вызываю setNoMessagesConsumedWithCompletion.

Я использую Swift API... Что мне нужно сделать, чтобы узнать, сколько сообщений в моем канале еще не прочитано? В какой момент они становятся прочитанными? (когда пользователь открывает канал чата и запрашивает getLastWithCount?)

Я прочитал в документах, что вы должны установить что-то, называемое горизонтом потребления, чтобы получать неиспользованное сообщение, но я не знаю, как вы это делаете в SWIFT API https://www.twilio.com/docs/chat/consumption-horizon это было для Javascript API, так что, возможно, проще с Swift Api?

1 ответ

Я разобрался с решением. Согласно документации, вам необходимо обновить последний использованный индекс сообщения. Так, например, если у пользователя открыто окно чата, вам нужно записать для этого пользователя (или экземпляра клиента чата), какое последнее сообщение он видел перед закрытием чата. Я сохраняю все сообщения в массиве сообщений и обновляю последний использованный индекс сообщений длиной массива сообщений:

generalChannel?.messages?.setLastConsumedMessageIndex(NSNumber.init(value: self.messages.count), completion: { (result, count) in
        if !result.isSuccessful() {
            print(result.error.debugDescription)
        }
    })

Затем, если вы отправляете сообщения на этот канал, когда пользователь не находится в канале, они будут записаны как неиспользованные, вы можете получить номер по телефону:

channel.getUnconsumedMessagesCount(completion: { (results, numberUnconsumed) in
                        print(numberUnconsumed)
                    })
Другие вопросы по тегам