Skip to main content
消息管理器负责消息的增删改查、新消息监听、刷新消息监听、消息入库、发送消息回执监听、监听同步某个聊天数据等。

发送消息

基础发送方法

SDK 内置频道类型可通过 WKChannelType 查看

文本消息

图片消息

在构建图片消息正文时,无需传递图片的高宽。SDK 会自动获取图片高宽

完整发送示例

自定义消息

参考自定义消息: 自定义消息

消息入库监听

在发送消息时,SDK 将消息保存在本地数据库后就会触发入库回调。此时消息并未进行发送,可在此监听中将消息展示在 UI 上。
关于事件是否传入唯一 key 说明请查看事件监听

收到新消息监听

如果在聊天页面内收到新消息时需判断该消息是否属于当前会话,可通过消息对象 WKMsgchannelIDchannelType 判断

新消息处理示例

刷新消息监听

在 SDK 更新过消息时,如:消息发送状态、有人点赞消息、消息已读回执、消息撤回、消息被编辑等等,SDK 都将回调以下事件。UI 可通过消息对象 WKMsgclientMsgNO 来判断具体是哪条消息发生了更改。

消息刷新处理示例

消息发送状态码(ReasonCode)

当消息发送后,可以通过监听消息刷新事件获取 WKMsg 对象。WKMsg 中的 status(发送状态)和 reasonCode(原因码)指示了消息发送的结果。

查看历史消息

获取历史消息并不是同步方法,因为有可能存在非连续性时会往服务器同步数据

历史消息加载示例

离线消息接收

需要实现同步频道消息数据源: 频道消息数据源 因为 WuKongIM 是支持消息永久存储,所以会产生海量的离线消息。对此我们采用了按需拉取的机制,如 10 个会话一个会话 10 万条消息,WuKongIM 不会把这个 10×10 万=100 万条消息都拉取到本地。而是采用拉取这 10 个会话的信息和对应的最新 20 条消息,也就是实际只拉取了 200 条消息相对 100 万条消息来说大大提高了离线拉取速度。用户点进对应的会话才会去按需拉取这个会话的消息。这些机制 SDK 内部都已做好了封装,使用者其实不需要关心。使用者只需要关心最近会话的变化和监听获取数据的回调即可。

数据结构说明

消息类核心属性

消息正文核心属性

消息属性说明

最佳实践

1. 消息列表性能优化

2. 消息状态管理

3. 内存管理

下一步

频道管理

学习如何管理频道和群组

会话管理

处理会话列表和未读消息

频道成员管理

管理频道成员信息

数据源配置

配置数据源和同步逻辑