浏览 SDKs · Flutter
平台
SDKsFlutter

发送第一条消息

验证 Flutter 应用中单聊或群聊的首条文本消息发送链路。

复制

本页说明如何在 Flutter 应用中安装并初始化 OpenIM Flutter SDK,登录后发送第一条文本消息。开始前,请先完成开始之前列出的准备工作。

单聊消息使用目标用户 userID;群聊消息使用目标群组 groupID。两个目标不能同时填写。

第 1 步:安装 SDK

flutter pub add flutter_openim_sdk

该命令会从 pub.dev 选择当前项目可用的最新兼容版本,并更新 pubspec.yaml 与依赖锁定文件。团队项目应提交锁定文件,并在升级后重新验证初始化、登录和消息收发流程。

第 2 步:初始化 SDK

按照按运行环境接入取得应用数据目录并执行初始化。初始化时传入 OnConnectListener,后续以连接成功回调确认网络连接可用。

import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';

final initialized = await OpenIM.iMManager.initSDK(
  platformID: platformID,
  apiAddr: session.apiAddr,
  wsAddr: session.wsAddr,
  dataDir: dataDir,
  listener: connectListener,
);

第 3 步:登录

await OpenIM.iMManager.login(
  userID: session.userID,
  token: session.token,
);

登录请求成功与长连接成功建立是两个独立阶段。收到 OnConnectListener.onConnectSuccess 连接成功回调后,方可发送消息。

第 4 步:准备目标

单聊需要一个已存在的接收方用户:

const targetUserID = 'user_b';

群聊需要一个当前用户有权发言的群组:

const targetGroupID = 'group_123';

第 5 步:创建并发送文本消息

先调用文本消息创建方法构建本地 Message,再调用发送消息接口发送。单纯创建消息不会向网络发信,也不会触发接收端事件。

final message = await OpenIM.iMManager.messageManager.createTextMessage(
  text: '你好,OpenIM',
);

final sentMessage = await OpenIM.iMManager.messageManager.sendMessage(
  message: message,
  userID: targetUserID,
  offlinePushInfo: OfflinePushInfo(
    title: '新消息',
    desc: '你收到了一条消息',
  ),
);

appendOutgoingMessage(sentMessage);

发送群聊时改传 groupID,不传 userID:

final sentMessage = await OpenIM.iMManager.messageManager.sendMessage(
  message: message,
  groupID: targetGroupID,
  offlinePushInfo: OfflinePushInfo(
    title: '群组新消息',
    desc: '群组中有一条新消息',
  ),
);

发送消息的 Future 完成后,当前客户端可根据返回的 Message 及其 clientMsgID 合并到本地界面中。接收端则通过消息监听器接收新消息(完整代码见接收消息)。发送成功与对端收到消息属于两个独立的异步阶段,测试时建议分别验证。

下一步