SDKsElectron
OpenIM Electron SDK 概览
说明 Electron WASM 与 FFI 两种接入形态、适用场景和 FFI 专属能力。
Electron SDK 同时提供 WASM 和 FFI 两种接入形态。共享的用户、会话、群组、消息、通话和事件能力以 WASM SDK 文档 为准;本页只说明形态选择,以及 FFI 形态相对 WASM 多出的 API 与登录参数差异。
SDK 形态分工
| 接入形态 | 适用场景 | 文档指南 |
|---|---|---|
| WASM | 浏览器页面、Electron 渲染进程、WebView、希望与 Web 端共用一套代码的 UI | 直接参考 WASM SDK 文档 接入 |
| FFI | 桌面客户端打包、主进程原生集成、需要读取本地磁盘文件全路径或独立 initSDK 生命周期的场景 | 参考本节的专属说明与 WASM 业务文档 |
| WASM + FFI | 同一产品同时支持 Web 与 Electron 桌面端 | 在应用层进行抽象封装,根据运行环境动态选择实现,避免同一用户被多实例重复登录 |
接入差异(仅 FFI)
WASM 浏览器包通过一次 login(InitAndLoginConfig) 同时传入服务地址、平台和用户凭据。Electron FFI 则拆分为两步:
initSDK(InitConfig):配置apiAddr、wsAddr、platformID、dataDir、systemType和日志选项。login({ userID, token }):传入当前用户凭据。
完整参数、示例与资源释放说明见认证与初始化。共享的连接、Token 和踢下线事件监听仍参考 WASM 认证与管理登录会话。
Electron 专属 API(FFI)
| 能力 | API | 说明 |
|---|---|---|
| 认证与生命周期 | initSDK / login / unInitSDK | 认证与初始化 |
| 本地全路径媒体消息 | createImageMessageFromFullPath 等 | 从完整路径创建媒体消息 |
| 上传诊断日志 | uploadLogs | 上传日志 |
这些 FFI 专用方法仅适用于 Electron FFI 形态。浏览器或 Electron WASM 形态的媒体消息使用 WASM 文档中的 *ByFile / *ByURL 路径。
核心通用能力(参考 WASM 文档)
桌面端注意事项
- 如果项目需要同时支持 Web 端和 Electron 桌面端,建议在业务层做好适配抽象,根据运行时环境动态加载 WASM 或 FFI 实例。
- 使用 WASM 形态时,打包后仍需验证
openIM.wasm、sql-wasm.wasm和wasm_exec.js可正常访问。 - 使用 FFI 形态时,按桌面安装包、系统权限、
dataDir和热更新策略接入,不要套用浏览器 WASM 的资源加载路径。 - 若主进程与渲染进程都需要访问 IM 状态,应先明确 IPC 通信边界和会话归属,避免多实例互相抢占或状态竞争。
这个页面有帮助吗?