浏览 SDKs · Electron
平台
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 则拆分为两步:

  1. initSDK(InitConfig):配置 apiAddr、wsAddr、platformID、dataDir、systemType 和日志选项。
  2. login({ userID, token }):传入当前用户凭据。

完整参数、示例与资源释放说明见认证与初始化。共享的连接、Token 和踢下线事件监听仍参考 WASM 认证与管理登录会话。

Electron 专属 API(FFI)

能力API说明
认证与生命周期initSDK / login / unInitSDK认证与初始化
本地全路径媒体消息createImageMessageFromFullPath 等从完整路径创建媒体消息
上传诊断日志uploadLogs上传日志

这些 FFI 专用方法仅适用于 Electron FFI 形态。浏览器或 Electron WASM 形态的媒体消息使用 WASM 文档中的 *ByFile / *ByURL 路径。

核心通用能力(参考 WASM 文档)

领域WASM 入口
快速开始按运行环境接入、发送第一条消息
用户用户概览
会话会话概览
群组群组概览
消息消息概览
音视频通话通话概览
事件事件概览
日志级别日志(上传日志见 Electron 专属页)

桌面端注意事项

  • 如果项目需要同时支持 Web 端和 Electron 桌面端,建议在业务层做好适配抽象,根据运行时环境动态加载 WASM 或 FFI 实例。
  • 使用 WASM 形态时,打包后仍需验证 openIM.wasm、sql-wasm.wasm 和 wasm_exec.js 可正常访问。
  • 使用 FFI 形态时,按桌面安装包、系统权限、dataDir 和热更新策略接入,不要套用浏览器 WASM 的资源加载路径。
  • 若主进程与渲染进程都需要访问 IM 状态,应先明确 IPC 通信边界和会话归属,避免多实例互相抢占或状态竞争。