跳转到主要内容
WuKongIM Flutter SDK 为 Flutter 应用提供了完整的即时通讯解决方案,采用模块化设计,让开发者能够快速集成和使用各种 IM 功能。

设计理念

为了让开发者更快更方便的使用 SDK,悟空 SDK 提供了一个唯一的入口来访问 SDK 中的所有功能。就像书籍的目录一样可以通过目录查找对应的内容。如连接 IM:
WKIM.shared.connectionManager.connect();
这种设计让开发者能够:
  • 统一入口:通过 WKIM.shared 访问所有功能
  • 模块化管理:每个功能模块职责清晰
  • 易于维护:代码结构清晰,便于调试和维护

结构说明

WuKongIM Flutter SDK 采用模块化架构设计,各个模块相互协作,为开发者提供完整的即时通讯功能:

核心功能模块

消息管理器 (MessageManager)

负责消息的增删改查、新消息监听、刷新消息监听、消息入库、监听同步某个聊天数据等。
// 消息管理器
WKIM.shared.messageManager

// 主要功能
- 发送各种类型消息(文本、图片、语音、视频等)
- 接收和处理新消息
- 查询历史消息
- 消息状态管理
- 自定义消息类型

最近会话管理器 (ConversationManager)

获取最近聊天记录、刷新最近会话[新增聊天、红点改变]、监听移除某个会话、监听同步最近会话等。
// 最近会话管理
WKIM.shared.conversationManager

// 主要功能
- 获取会话列表
- 会话排序和筛选
- 未读消息统计
- 会话操作(删除、置顶等)
- 会话状态监听

连接管理器 (ConnectionManager)

负责IM的连接、断开、退出登录、监听连接状态、监听获取连接IP等。
// 连接管理
WKIM.shared.connectionManager

// 主要功能
- 建立和维护连接
- 连接状态监听
- 自动重连机制
- 网络状态处理
- 登录登出管理

频道管理器 (ChannelManager)

可获取Channel的信息,刷新Channel缓存,监听Channel更改[置顶、免打扰、禁言]等。
// 频道管理
WKIM.shared.channelManager

// 主要功能
- 获取频道信息
- 频道设置管理
- 频道状态监听
- 频道缓存管理
- 频道搜索

频道成员管理器 (ChannelMemberManager)

获取Channel成员列表、设置成员备注、保存修改成员数据、监听刷新成员和移除成员等。
// 频道成员管理
WKIM.shared.channelMemberManager

// 主要功能
- 获取成员列表
- 成员信息管理
- 成员权限控制
- 成员操作监听
- 成员搜索和筛选

提醒项管理器 (ReminderManager)

获取某个会话的提醒如:[有人@我] [入群申请] 等。还可自定义提醒项,如像 语音未读 等。
// 提醒项管理
WKIM.shared.reminderManager

// 主要功能
- @提醒管理
- 系统通知提醒
- 自定义提醒类型
- 提醒状态管理
- 提醒历史记录

命令管理器 (CMDManager)

负责监听服务器下发的命令消息。
// 命令管理
WKIM.shared.cmdManager

// 主要功能
- 系统命令监听
- 命令消息处理
- 业务指令分发
- 状态同步命令
- 自定义命令扩展

SDK 与 APP 交互原则

WuKongIM Flutter SDK 采用事件驱动的交互模式,确保数据流的清晰和可控:

交互流程说明

  1. APP 调用 SDK 方法:应用通过 SDK 提供的 API 发起操作
  2. SDK 处理数据:SDK 内部处理业务逻辑,包括数据验证、格式转换等
  3. 网络通信:SDK 与服务器进行数据交换
  4. 事件回调:SDK 通过事件机制将处理结果回调给应用
  5. UI 更新:应用根据回调数据更新用户界面

事件监听示例

class ChatPage extends StatefulWidget {
  @override
  _ChatPageState createState() => _ChatPageState();
}

class _ChatPageState extends State<ChatPage> {
  @override
  void initState() {
    super.initState();
    
    // 监听新消息
    WKIM.shared.messageManager.addOnNewMsgListener('chat', (msgs) {
      setState(() {
        // 更新消息列表
        _updateMessageList(msgs);
      });
    });
    
    // 监听连接状态
    WKIM.shared.connectionManager.addOnConnectionStatus('chat', (status, reason, connInfo) {
      setState(() {
        // 更新连接状态
        _updateConnectionStatus(status);
      });
    });
  }
  
  @override
  void dispose() {
    // 移除监听器
    WKIM.shared.messageManager.removeNewMsgListener('chat');
    WKIM.shared.connectionManager.removeOnConnectionStatus('chat');
    super.dispose();
  }
  
  // 发送消息示例
  void _sendMessage(String text) {
    final textContent = WKTextContent(text);
    final channel = WKChannel('channelId', WKChannelType.personal);
    
    // 调用 SDK 方法发送消息
    WKIM.shared.messageManager.sendMessage(textContent, channel);
    // SDK 会通过事件回调消息发送结果
  }
}

开发优势

1. 简单易用

  • 统一入口:所有功能通过 WKIM.shared 访问
  • 清晰结构:模块化设计,职责分明
  • 丰富示例:提供完整的使用示例

2. 功能完整

  • 全平台支持:支持 iOS、Android 双平台
  • 消息类型丰富:支持文本、图片、语音、视频等多种消息类型
  • 自定义扩展:支持自定义消息类型和业务逻辑

3. 性能优化

  • 本地缓存:智能缓存机制,减少网络请求
  • 增量同步:只同步变化的数据,提高效率
  • 内存管理:优化内存使用,避免内存泄漏

4. 稳定可靠

  • 自动重连:网络异常时自动重连
  • 数据一致性:确保数据的完整性和一致性
  • 错误处理:完善的错误处理机制

快速开始

准备好开始使用 WuKongIM Flutter SDK 了吗?