ios - Twilio SWIFT API 获取消费消息总是返回 0
问题描述
我想在聊天频道旁边显示频道未使用或未读的消息数量(我认为这就是未使用的意思?)
目前我将消息发送到两个用户订阅的频道,一个私人聊天。然后在打开聊天窗口之前,我会检查频道是否有未使用的消息,但即使我调用 setNoMessagesConsumedWithCompletion,它也总是显示 0 条消息。
我正在使用 Swift API...我需要做什么才能找出我的频道中有多少消息尚未阅读?他们在什么时候被阅读?(当用户打开聊天频道并请求 getLastWithCount 时?)
我在文档中读到,您必须设置一些称为消费范围的东西才能获得未使用的消息,但我不知道您是如何在 SWIFT API https://www.twilio.com/docs/chat/consumption-horizo n中做到这一点的这是针对 Javascript API 的,所以使用 Swift Api 可能更容易?
解决方案
我想出了解决方案。根据文档,您需要更新上次使用的消息索引。因此,例如,如果用户打开了一个聊天窗口,您需要为该用户(或聊天客户端的实例)记录他们在关闭聊天之前看到的最后一条消息是什么。我将所有消息存储在消息数组中,并使用消息数组的长度更新最后使用的消息索引:
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)
})
推荐阅读
- docker - Artifactory 在每次重新启动时重新创建内置证书
- solr - 用于翻译文档索引的 apache solr
- python - 如何根据条件将数据框中的列合并到另一个?
- sinatra - sinatra v1.4.8 没有从配置中选择正确的端口
- python - 绘制多种算法的精确召回曲线
- asp.net-core - 将 .Net Core 3.1 Web 应用程序部署到 IIS 后登录问题
- memory - 使用 posix_memalign 将数组初始化为零?
- javascript - HTML CSS 添加背景视频,如背景图片
- python - 从c#执行python文件时没有输出
- android - 在 Android Studio 的 RecyclerView 中更新 TextView