Skip to content
密信 IM · 开发文档

会话与未读 ​

会话列表是消息、未读和入口状态的汇总。Flutter SDK 通过共享会话控制器维护这些信息,UIKit 默认使用同一份状态;自定义页面也应从这里读取。

会话身份 ​

单聊由两名用户共同确定,群聊由群 ID 确定。使用 MixinImConversationId.single(userA, userB) 或 MixinImConversationId.group(groupId) 生成标识,不根据昵称拼接 ID。

访问会话时,服务端校验用户状态、好友关系和群成员资格。

读取和更新 ​

dart
final sdk = MixinImSdk.instance;
await sdk.conversationController.refresh();
final items = sdk.conversationController.conversations;

if (items.isNotEmpty) {
  await sdk.conversations.update(
    items.first.conversationId,
    pinned: true,
  );
}

update 还接受 muted,用于会话免打扰。调用后通过共享控制器刷新界面。免打扰管理当前用户的通知偏好,群禁言管理成员的消息发送权限。

摘要与排序 ​

当前账号本地可见的最新消息决定 lastMessage 与 lastMessageTime;服务端 activityTime 表示会话活动时间。列表优先展示置顶会话,再按最新消息时间或活动时间排序。

自定义页面直接使用共享控制器提供的摘要和排序结果,统一处理在线消息与历史补拉。

未读与已读 ​

dart
await sdk.conversationController.markRead(
  conversationId,
  visibleMessageSequence,
  sendReadReceipt: true,
);

conversationId 和 visibleMessageSequence 取自当前会话与用户实际看到的消息,已读水位在服务端确认后推进。

设置 sendReadReceipt: false 仍会更新本人的已读水位,但不向单聊对端发送该次实时已读回执。总未读可以订阅 unreadCountStream,群申请数量等其他角标应与聊天未读分开处理。

隐藏、删除和清空 ​

隐藏会话、删除会话入口和清空聊天内容分别使用对应 SDK 操作。界面说明操作影响的范围,再由 SDK 同步记录与会话状态。参见消息操作。

开始构建你的通讯体验

获取授权包、完整接口资料与接入支持。

LET’S BUILD TOGETHER

聊聊你的通讯需求

联系密信团队,获取 SDK 授权、接入资料与私有化方案。

咨询内容:
客服微信mixinim
客服 QQ629900
联系邮箱mixinim@126.com

SDK 与源码按授权范围交付。此处不提供公开下载。