Skip to content

晞晗IM(XHIM)商业交付与客户接入指南

适用对象:XHIM 销售/交付人员、购买方技术负责人、客户端和服务端开发者。

XHIM 可以作为一套“客户端 SDK + 可私有部署服务端”产品交付。销售前不需要替 购买方准备真实域名、Apple/Google/Huawei 账号、App 证书、对象存储、KMS 或 生产数据库;这些都属于购买方自己的部署环境。

需要在 XHIM 交付侧准备的是:可安装的固定版本 SDK 包、对应服务端版本、接入 文档、示例、校验值、许可证和明确的支持范围。

1. 标准交付内容

建议每个销售版本使用同一个版本号,并按以下目录交付:

text
XHIM-<version>/
├── client/
│   ├── ios/         XCFramework + Swift Package/CocoaPods
│   ├── macos/       XCFramework + Swift Package
│   ├── android/     Maven Repository 或 AAR
│   ├── windows/     NuGet
│   ├── harmony/     HAR/OHPM
│   ├── flutter/     pub plugin + 原生依赖锁
│   └── electron/    npm + Electron ABI prebuild
├── server/          服务端源码、容器部署文件和管理后台
├── examples/        各声明支持平台的最小示例
├── docs/            客户接入、服务端部署、升级和 API 说明
├── RELEASE-MANIFEST.json
├── CHECKSUMS.txt
├── CHANGELOG.md
├── LICENSE
└── NOTICE

客户端 SDK 与服务端必须使用发布清单声明的兼容版本。不要让客户从任意 Git 提交自行拼装不同版本的 Core、平台 Wrapper 和 Server。

2. 不需要 XHIM 交付方代客户准备的内容

以下内容由购买方在自己的账号和基础设施中配置:

  • App Store、企业签名、Android/HarmonyOS/Windows 应用签名;
  • 客户自己的域名、HTTPS 证书、内外网 IP 和防火墙;
  • PostgreSQL、对象存储、CDN、备份、监控和告警;
  • APNs、FCM、Huawei Push 等厂商凭证;
  • 客户业务账号系统、用户数据和权限模型;
  • 隐私政策、上架材料、数据保留策略和当地合规审批;
  • 真实用户容量目标、生产压测和上线时间表。

XHIM 应提供配置入口、模板和说明,但不在通用销售包中写入任何客户密钥。

3. 购买方接入只分两条线

text
客户端团队                         服务端团队
添加对应平台 SDK                   部署 XHIM Server
填写一个 Server URL                配置自己的域名和数据库
传入当前业务 User ID               对接自己的业务登录系统
使用 SDK/UI Kit                    配置媒体、Push 和管理后台

两条线可以并行。客户端 QuickStart 不包含容器、数据库或运维命令;服务端文档 也不要求客户端开发者编译 C++ Core。

4. 客户端最短接入路径

4.1 联调或产品演示

购买方部署 Development Server,或使用 XHIM 提供的临时演示环境后,各端只传:

text
Server URL + User ID

例如 iOS:

swift
let client = try await XHIMClient.connect(
    server: "https://im-test.customer.com",
    userID: "alice"
)

macOS、Android、Windows、HarmonyOS、Flutter、Electron 和 Web 使用各自 QuickStart 中的连接入口。 Development Server 负责测试账号登录,App 页面不填写密码或 Token。

4.2 购买方正式业务

正式环境不能仅凭一个可伪造的 User ID 登录。购买方只需要在 App 的账号层提供 一个“XHIM 业务鉴权回调”:

text
当前 App 已登录会话
  → 调用购买方自己的业务后端
  → 返回 XHIM 登录票据
  → SDK 自动登录和续期

这是一个回调,不是要求每个页面管理短期 Token。票据格式、刷新、并发合并和 提交都由 XHIM SDK 与 Server 处理;页面、Cell、Composable、Window 和 ArkUI Component 不接触它。

如果购买方暂时没有业务账号系统,可以先用 Development 模式验收全部 IM 功能, 但不应把免鉴权模式开放到公网生产环境。

5. 平台入口

平台客户拿到的包从零接入
iOSCocoaPods 或二进制 Swift PackageiOS / CocoaPods
macOS二进制 Swift PackagemacOS
AndroidMaven 包或 AARAndroid
WindowsNuGetWindows
HarmonyOSHAR/OHPMHarmonyOS
Flutterpub plugin + 原生依赖Flutter
Electronnpm + Electron ABI prebuildElectron

所有平台都提供 Headless SDK;基础 UI Kit 可选。客户可以只替换 UI,不修改 C++ Core,也可以使用版本化自定义消息 API 扩展自己的业务消息。

6. 服务端交付

购买方服务端人员从 XHIM Server 文档 开始。首次验收 建议按以下顺序:

  1. 启动 XHIM Server 与 PostgreSQL;
  2. 设置购买方自己的公开 Server URL;
  3. 创建 App、两个测试用户和一个双方可见的会话;
  4. 把 Server URL、两个 User ID 和 Conversation ID 交给客户端;
  5. 两个客户端完成文字、图片、文件、已读和断线恢复测试;
  6. 再按需配置对象存储、内容审核、Push 和业务鉴权。

管理后台随服务端交付,地址和管理员认证由购买方部署人员配置。XHIM 销售包 不能内置通用管理员密码。

7. XHIM 交付方仍需保证什么

“不替客户配置生产环境”不等于可以省略 SDK 产品质量。每个销售版本仍应保证:

  • 每个声明支持的平台包都能被空白工程安装,示例只依赖公开 API;
  • Core、平台 Wrapper、Server 和数据库 Schema 版本兼容;
  • 固定版本、校验值、变更记录、许可证和升级说明完整;
  • 默认不内置客户密钥、测试管理员密码或生产账号;
  • Development 与 Production 行为有明确边界;
  • 已知限制、可选能力和支持平台写入发布说明;
  • 客户能够独立修改域名、IP、数据库、对象存储和 Push Provider。

真机矩阵、安全扫描和兼容测试是 XHIM 自己对“这个发行包质量”的证明;客户 域名、客户证书和客户生产容量则由购买方在上线前验证。两者不能混为一谈。

8. 推荐的销售验收方式

销售演示不必使用客户生产环境。可以提供一个隔离的 Development 演示 Server, 并准备 Alice/Bob 两个测试账号:

text
设备 A / Alice ─┐
                ├─ XHIM Development Server
设备 B / Bob   ─┘

现场验证登录、文字、图片、视频、文件、自定义消息、已读、离线重连和账号切换。 成交后,购买方再把相同 SDK 指向自己的 Server URL,无需重新编译 XHIM Core。

XHIM 客户端 SDK 与服务端文档