跳到主要内容

Web SDK 初始化与核心接口

openIM.wasm 加载后会在全局作用域(globalThis / window / self)注入与 Go open_im_sdk 一一对应的导出函数。


1. 加载 Wasm 并初始化登录​

// 1. 引入 wasm_exec.js 并实例化 openIM.wasm
import './wasm_exec.js';

async function loadIMWasm(wasmUrl = '/openIM.wasm') {
const go = new (globalThis as any).Go();
const result = await WebAssembly.instantiateStreaming(fetch(wasmUrl), go.importObject);
go.run(result.instance);
}

// 2. 初始化并登录(PlatformID: 5 = Web)
await loadIMWasm();

2. 核心能力对照​

Web 端 Wasm 导出的方法与 iOS / Android 共享同一套 Go 核心逻辑与 JSON 数据结构:

  • 连接与登录:initSDK、login、logout、getLoginStatus、getLoginUserID、networkStatusChanged、setAppBackgroundStatus
  • 用户在线状态订阅 (Presence):subscribeUsersStatus、unsubscribeUsersStatus、getSubscribeUsersStatus、getUserStatus(通过 OnUserStatusChanged 事件回调)
  • 正在输入状态 (Typing):changeInputStates、getInputStates(通过 OnConversationUserInputStatusChanged 事件回调)
  • 会话与消息:getAllConversationList、getConversationListSplit、getOneConversation、setConversation、createTextMessage、sendMessage、sendMessageNotOss、getAdvancedHistoryMessageList、revokeMessage、deleteMessage、markConversationMessageAsRead
  • 群组与好友:createGroup、joinGroup、getJoinedGroupList、getGroupMemberList、getFriendList、addFriend、acceptFriendApplication、addBlack