FoxTalk
文档/介绍

介绍

FoxTalk 是基于 TangSengDaoDao 二次开发的 Flutter 客户端。基础模块按 Apache 2.0 开源,从聊天列表到音视频通话,全部用 Flutter 重写,与 iOS 原版逐像素对齐。

原版 TangSengDaoDao 提供了 iOS (Objective-C) 与 Android (Java) 两套实现。FoxTalk 选择 Flutter 重写, 是因为一份 Dart 代码可以同时输出 iOS 和 Android 的原生级体验, 让我们把精力放在 IM 业务本身, 而不是维护两套 UI 代码。

项目架构

FoxTalk 在客户端侧采用三层架构, 自上而下:

Layer 03
UI 层
widget · page · 导航 · 动效
lib/src/ui/foruiCachedNetworkImage
Layer 02
应用层
业务模型 · service · 本地缓存 · KV 持久化
lib/src/<domain>/sqfliteshared_preferences
Layer 01
IM SDK 层
TCP/WebSocket 连接 · 协议编解码 · 本地 DB
wukongimfluttersdk9 张本地表TCP + ACK

整体设计原则: UI 层不直接调 SDK, 必须经应用层 service 中转。这样测试好做, 后续替换 IM 协议或加 mock 也容易。

基础模块(开源)

构成 IM 应用最核心的部分按 Apache 2.0 发布。源码可读、可改、可商用。

  • IM 核心
    连接、消息协议、ACK 机制、断线重连
    OPEN
  • 基础消息
    文本、图片、语音、名片、用户资料
    OPEN
  • 会话与群组
    会话列表、好友、基础群聊
    OPEN
  • 聊天 UI
    消息列表、气泡、输入面板、表情面板
    OPEN
  • 本地持久化
    sqflite + shared_preferences, 按 uid 隔离
    OPEN

增强模块(可选)

在基础模块之上可选叠加, 满足更深度的运营需求。

  • 收藏
    文本与图片消息的云端收藏
    EXT
  • 位置
    地图位置选择与位置消息发送
    EXT
  • 文件
    文件选择、上传与分享
    EXT
  • 标签
    联系人标签的创建与管理
    EXT
  • 群高级
    群禁言、管理员、群头像、入群审核
    EXT
  • 小视频
    短视频录制、发送与播放
    EXT
  • 安全与隐私
    手机号保护、设备锁、黑名单
    EXT
  • 表情商店
    自制表情、动图表情
    EXT
  • 朋友圈
    动态发布、查看、评论
    EXT
  • 客服
    专属客服与智能分配
    EXT
  • 旗舰
    消息已读未读、点赞、截屏通知
    EXT
  • 音视频
    单人及群组视频通话
    EXT

下一步

后续文档会覆盖编译运行、项目配置、SDK 分层、自定义消息类型、 私有化后端对接等主题。当前文档站还在建设中, 完整章节预计在后续版本上线。

last updated · 2026-05发现问题? 在 GitHub 提 issue