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