消息存储

最近更新时间:2019-05-22 10:53:08

离线消息存储

云通信 IM 支持离线消息缓存,即当用户不在线时,下次登录时会收到该条离线消息。离线消息默认保存7天,如果用户7天内没有登录过,再次登录的时候,不能获取到7天前的离线消息,因离线消息由空间限制,离线消息会按照发送时间倒序排列,部分用户的消息可能会被服务器删除。

默认情况下,一个终端可通过 SDK 把离线消息拉回到本地,云通信 IM 便会删除消息。如果需要支持多终端的情况、或者更换终端还想要拿到未读的消息,需要自己管理未读消息,当禁用了自动已读上报,只有用户显式调用已读上报接口,云通信 IM 才会删除消息,否则保存到消息过期。这样如果没有进行已读上报,更换终端,仍然可拿到未读的消息。

漫游消息存储

云通信 IM 支持消息漫游,即用户更换终端的情况下,也可以获取到跟其他用户或者某个群的聊天记录。

默认情况下,单聊消息和群聊消息有7天漫游,超过漫游时长的消息会被删除。云通信 IM 支持在控制台修改消息漫游时长,延长消息漫游时长是增值服务,具体计费说明请参考 价格说明

最近联系人消息

最近联系人消息类似 QQ 的最近联系人列表中,可展示最近跟用户联系过的用户以及最后一条消息。

客户端默认情况下会在登录时通过 SDK 拉取最近联系人消息,如果本地之前没有存储过,会通过 onNewMessage 回调取得。

使用最近联系人,登录时会消耗一些流量,获取服务器中相关联系人的最后一条消息。如果不需要此功能,可通过 SDK 实现禁用,最近联系人默认存储最近100个联系人,但是保存时长跟最近联系人中的最后一条消息保存时间一致,比如默认如果超过7天跟联系人没有消息,最后一条消息过期后便无法在最近联系人中获取到此用户。

App 本地存储

默认情况下,SDK 内部会对收到的消息进行存储,无需用户进行存储。用户可调用接口获取本地消息(无网络操作),另外,通过 getMessage 接口,也会获取本地消息,如果本地消息存在断层,会通过漫游消息补全。
SDK 默认不会删除用户消息,但我们提供本地消息删除的能力满足您特殊的需要。

注意:

使用本地存储会消耗磁盘以及 CPU 性能,在不需要存储的场景(如直播场景,更注重消息处理性能,也不关心历史消息),可选择禁用本地存储。