Twilio SWIFT API获取消耗的消息始终返回0

时间:2018-08-19 16:50:48

标签: ios swift twilio twilio-programmable-chat

我想在聊天频道旁边显示该频道未使用或未读的消息数(我认为这是未使用的意思?)

当前,我将消息发送到两个用户已订阅的频道(私人聊天)。然后,在打开聊天窗口之前,我检查通道中是否有未使用的消息,但是即使我调用setNoMessagesConsumedWithCompletion,它也总是显示0条消息。

我正在使用Swift API ...该怎么做才能找出尚未读取我频道中的多少条消息?他们什么时候被阅读? (当用户打开聊天频道并请求getLastWithCount吗?)

我阅读了文档,您必须设置一些称为“消费范围”的内容以获取未消耗的消息,但是我不知道您是如何在SWIFT API https://www.twilio.com/docs/chat/consumption-horizon中做到这一点的,这也适用于Javascript API,所以也许Swift Api更容易吗?

1 个答案:

答案 0 :(得分:0)

我想出了解决方案。根据文档,您需要更新最后消耗的消息索引。因此,例如,如果用户打开了聊天窗口,则需要为该用户(或“聊天客户端”实例)记录他们在关闭聊天之前看到的最后一条消息是什么。我将所有消息存储在消息数组中,并使用消息数组的长度更新最后消耗的消息索引:

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)
                    })
相关问题