浏览 SDKs · Electron
SDKsElectron

OpenIM Electron SDK 概览

以 WASM 文档为共享 API 基线,说明 Electron WASM 与 FFI 形态分工,以及 FFI 专属接入差异。

复制

Electron SDK 同时提供 WASM 和 FFI 两种接入形态。共享的用户、会话、群组、消息、通话和事件能力以 WASM SDK 文档 为准;本页只说明形态选择,以及 FFI 形态相对 WASM 多出的 API 与登录参数差异

SDK 形态分工

接入形态适用场景文档去向
WASM浏览器页面、Electron 渲染进程、WebView、希望与 Web 客户端复用的 UI直接使用 WASM SDK 的接入与业务指南
FFI桌面应用打包、原生运行时、需要本地文件全路径或独立 initSDK 生命周期的场景本 Hub 的专属页 + WASM 共享业务页
WASM + FFI同一产品同时支持 Web 与 Electron 打包在业务层封装统一入口,按运行环境选择实现,避免同一用户被两个 SDK 实例重复登录

接入差异(仅 FFI)

WASM 浏览器包通过一次 login(InitAndLoginConfig) 同时传入服务地址、平台和用户凭据。Electron FFI 拆成两步:

  1. initSDK(InitConfig):写入 apiAddrwsAddrplatformIDdataDirsystemType 和日志选项。
  2. login({ userID, token }):只提交当前用户凭据。

完整参数、示例和 unInitSDK()认证与初始化。共享的连接、Token 和踢下线事件监听仍参考 WASM 认证与管理登录会话

Electron 专属 API(FFI)

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

浏览器或 Electron WASM 形态不要调用这些 FFI 专用方法;媒体消息应继续使用 WASM 文档中的 *ByFile / *ByURL 路径。

共享能力(链到 WASM)

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

桌面端注意事项

  • 同时覆盖 Web 与 Electron 时,先定义应用内 IM 适配器,再按环境选择 WASM 或 FFI。
  • 使用 WASM 形态时,打包后仍需验证 openIM.wasmsql-wasm.wasmwasm_exec.js 可访问。
  • 使用 FFI 形态时,按桌面安装包、权限、dataDir 和升级策略接入,不要套用浏览器 WASM 资源路径。
  • 主进程与渲染进程都需要 IM 状态时,先明确 IPC 边界和会话所有权,避免多实例竞争。
  • 不要把用户 Token 写入 preload 脚本或主进程日志。