Skip to content
密信 IM · 开发文档

发送第一条消息 ​

本页使用 Flutter 无界面 SDK,演示已登录用户向另一测试用户发送文本。开始前,应完成 登录与 IM Session,并确保两个账号已同步、关系及权限允许互发消息。

创建聊天控制器 ​

sdk 使用已连接的实例,peerUserId 来自宿主选中的联系人。下面的调用均使用 SDK 公共 API,不需要自己拼 WebSocket 包。

dart
import 'package:mixinim_sdk/mixinim_sdk.dart';

MixinImChatController createDirectChat(
  MixinImSdk sdk,
  String peerUserId,
) {
  final currentUserId = sdk.currentSession!.userId;
  final conversation = MixinImConversation(
    conversationId:
        MixinImConversationId.single(currentUserId, peerUserId),
    conversationType: MixinImConversationType.single,
    targetId: peerUserId,
  );

  return MixinImChatController(
    conversation: conversation,
    messages: sdk.messages,
    conversations: sdk.conversations,
    markRead: sdk.conversationController.markRead,
    sendMessage: sdk.sendMessage,
    currentUserId: currentUserId,
    messageEvents: sdk.messageEventStream,
  );
}

完成 Session 连接后调用此函数。已有会话可直接使用会话列表提供的 MixinImConversation,保留名称、头像和序列等信息。

加载与发送 ​

dart
final chat = createDirectChat(MixinImSdk.instance, '90002');
await chat.loadInitial();
await chat.sendText('你好,这是第一条测试消息。');

// 页面读取 chat.messages、chat.error,并监听控制器变化。
// 页面永久离开时释放该页面持有的控制器:chat.dispose();

90002 是演示 ID,接入时替换为有权限通信的目标账号。调用后订阅控制器的状态与错误,分别呈现发送中、已发送、已读和失败。

发送后如何判断结果 ​

状态含义页面建议
发送中本机已创建发送记录保留气泡,显示发送进度
已发送服务端确认接受去掉发送中提示
已读收到符合当前功能设置的已读状态按产品规则展示
失败网络或业务校验未通过展示可理解原因,区分可重试与明确拒绝

后续变化按同一个 clientMessageId 合并到原消息,消息排序使用服务端序列。

接入检查 ​

完成双端收发后,检查断网恢复、应用重启、账号切换和主动退出时的消息展示、历史恢复与账号隔离。更多内容见 发送与投递、历史与搜索。

开始构建你的通讯体验

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

LET’S BUILD TOGETHER

聊聊你的通讯需求

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

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

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