浏览 SDKs · WASM
SDKsWASM

会话概览

了解 WASM SDK 中 ConversationItem、conversationID、会话设置和会话事件的职责。

复制

在 OpenIMSDK 中,会话(Conversation)是客户端围绕一次单聊或群聊维护的聊天状态,由当前登录用户的一条 ConversationItem 记录表示。它保存未读数、最后一条消息、置顶、草稿、消息接收选项和扩展字段等列表状态。会话记录与聊天目标分开标识:conversationID 用于定位当前账号的会话状态,单聊目标使用对方 userID,群聊目标使用 groupID

单聊和群聊都通过会话记录承载聊天列表状态;群资料、成员关系和权限仍由群组 API 管理。群聊页面需要同时使用 groupID 访问群组能力,并使用 conversationID 处理会话设置、未读数、草稿和消息历史。

会话标识

单聊会话使用目标用户 ID 作为 sourceID,会话类型为 SessionType.Single;群聊会话使用 groupID 作为 sourceID,会话类型为 SessionType.WorkingGroup。可以调用 getConversationIDBySessionType() 得到稳定的 conversationID,再把它用于会话设置、已读、隐藏和删除操作。

标识用途
conversationID当前账号的会话记录 ID,用于会话设置、消息历史和未读状态。
userID单聊对方的用户 ID。
groupID群聊对应的群组 ID,也是群组 API 的目标标识。
sourceID按会话类型查询时传入的聊天目标 ID:单聊为 userID,群聊为 groupID

会话数据

ConversationItem 同时保存会话列表展示信息和当前账号的会话设置。字段可以按职责理解:

职责相关字段说明
标识与类型conversationIDconversationType定位会话记录并区分单聊或群聊。
列表展示showNamefaceURLlatestMsglatestMsgSendTime渲染会话名称、头像和最后一条消息。
未读与提醒unreadCountgroupAtType展示会话未读数和群聊 @ 提醒。
列表整理isPinnedisMarkeddraftTextremark维护置顶、标记、草稿和当前用户设置的备注。
消息策略recvMsgOptisPrivateChatburnDurationisMsgDestructmsgDestructTime控制消息接收、阅后即焚和定期删除服务端消息。
业务扩展ex保存应用约定的完整扩展字符串。

按任务查找页面

删除和清理

隐藏、删除和清空会影响的范围不同:

操作作用
隐藏会话从当前客户端会话列表隐藏记录,后续有新消息时仍可能重新出现。
删除会话及消息删除会话记录及其消息数据。
清空会话消息保留会话记录,仅清空该会话的消息。

状态更新

查询方法用于建立页面快照,事件用于合并后续变化:

概览页只说明事件归属,不注册处理器。调用按钮的成功状态、事件增量和重新查询校准应分别处理,不能只根据用户操作推断最终会话状态。