====== 消息管理 ======
更新时间:2022-07-19
===== 功能描述 =====
环信即时通讯 IM 支持多种消息类型,开发者可以方便地对本地会话、消息进行管理,可以从服务端获取历史会话和消息,提供送达回执和已读回执能力。
消息:环信即时通讯 IM 中消息(Message)表示发送方给接收方发送的内容,消息包括多种类型,如:文本、图片、语音等。
会话:环信即时通讯 IM 中会话(Conversation)分为 3 种,单聊、群聊、聊天室会话。单聊是指 2 个用户建立的会话,双方可以在会话中收发消息。群聊会话是由群成员发送消息所组成的,群成员可以在群会话中首发消息。聊天室会话与群聊会话类似。
==== 消息类型 ====
^类型       ^描述                                                                                                                                                                             ^
|文本消息     |文本消息的内容是文本,可以包含超链接、emoji 表情符号等。表情消息是基于文本消息实现的。
 文本消息大小限制为 3 KB。                                                                                                |
|图片消息     |图片消息是附件消息,需要先将图片上传至消息服务器。接收方收到图片时自动下载图片缩略图。
 图片消息大小限制为 10 MB。                                                                                                  |
|语音消息     |语音消息是附件消息,需要先将语音上传至消息服务器。接收方收到语音时自动下载语音。
 语音消息大小限制为 10 MB。                                                                                                     |
|视频消息     |视频消息是附件消息,需要先将视频上传至消息服务器。接收方收到视频时自动下载视频缩略图,点击下载视频消息。
 视频消息大小限制为 10 MB。                                                                                         |
|文件消息     |文件消息是附件消息,需要先将文件上传至消息服务器。接收方收到文件时自动下载文件。
 文件消息大小限制为 10 MB。                                                                                                     |
|位置消息     |位置消息需要第三方的地图服务提供经纬度信息。接收方接收到位置消息,通过经纬度信息可以在第三方的地图服务中显示位置。                                                                                                                      |
|透传消息     |透传消息可视为命令消息,通过发送这条命令给对方,通知对方要执行的操作,对方收到消息后系统可以自定义处理。透传消息不会在 UI 上展示。
 消息大小显示为 3 KB。
 透传消息的使用场景:头像、昵称的更新、状态同步等。
 透传消息不会存入本地数据库。  |
|消息自定义扩展  |当基础的消息类型不满足需求时,可以使用消息自定义扩展增强基础消息类型。
 使用扩展后,消息大小不能超过原类型消息的大小。
 消息自定义扩展的使用场景:消息中需要携带被回复的消息内容和图文消息等。                                              |
|自定义消息    |开发者自定义的消息类型。自定义消息支持设置类型名称,开发者可以添加多种自定义消息。
 自定义消息大小限制为 3 KB。
 自定义消息的使用场景:红包消息、模板消息等。                                                            |
==== 消息功能 ====
=== 管理本地消息数据 ===
使用环信即时通讯 IM 发送和接收到的消息会存储在本地数据库,用户在本地进行消息的操作。消息以会话为单位进行管理,可基于会话为加载和展示消息。
^功能              ^描述                                     ^
|获取本地所有会话        |获取本地所有的会话。本地存储的消息有已读和未读状态,获取时包含未读消息数。  |
|从数据库中读取指定会话的消息  |从本地数据库获取指定会话的消息,进入会话时,获取会话内容。          |
|获取指定会话的未读消息数量   |从本地数据库获取指定会话的未读消息数,显示指定会话的未读消息数。       |
|获取所有会话的未读消息数量   |从本地数据库获取所有会话的未读消息数,显示整个应用的未读消息数。       |
|未读消息数清零         |查看未读消息后,未读消息数清零。可对指定会话和所有会话进行未读消息数清零。  |
|删除会话及聊天记录       |删除本地会话,会话里的聊天记录是否删除是可选项。               |
|根据关键字搜索会话消息     |根据关键字对会话里的消息内容进行搜索。                    |
|导入消息到数据库        |将外部消息导入本地数据库。需构造消息对象。                  |
|插入消息            |模拟收到某些消息通知,可以构造一条消息并写入会话。              |
=== 从服务器获取消息 ===
环信即时通讯 IM 在消息服务器保存历史消息,方便用户在新设备上获取历史消息。 历史消息存储时间与套餐版本相关:历史消息存储时间与套餐版本相关:专业版 7 天,旗舰版版 90 天, 尊享版 180 天。
^功能             ^描述                ^
|从服务器获取会话       |从服务端获取会话。         |
|分页获取指定会话的历史消息  |从服务端分页获取会话的历史消息。  |
=== 获取消息的已读回执和送达回执 ===
环信即时通讯 IM 消息投递成功会返回送达回执,而且提供消息已读功能,接收方查看消息后会返回已读回执。
^功能        ^描述                    ^
|单聊消息送达回执  |消息下发成功后,返回消息送达回执。     |
|单聊消息已读回执  |接收方查看消息后,返回消息已读回执。    |
|单聊会话已读回执  |接收方查看单聊会话后,返回会话已读回执。  |
|群组消息已读回执  |提供群组消息已读回执能力。         |