12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // 请结合您项目实际情况引入 SDK
- import { ImEngine, ImLogLevel } from "../lib/alivc-im.js";
- const initEngine = async () => {
- const engine = ImEngine.createEngine();
- try {
- await engine.init({
- appId: "APP_ID", // 开通应用后可以在控制台上拷贝
- appSign: "APP_SIGN", // 开通应用后可以在控制台上拷贝
- logLevel: ImLogLevel.ERROR, // 日志级别,调试时使用 ImLogLevel.DBUG
- // 指定引入的 wasm 的地址
- locateFile: (url) => {
- if (url.endsWith(".wasm")) {
- // 需要根据您项目 alivc-im.wasm.br 文件存放位置修改返回的路径
- // 这里是从项目根目录读取文件,而不是当前文件的目录下,因此不需要使用 .. 和 . 这些相对路径
- // 如果您参考了上面 uni-app 工程的目录结构,那么这里返回 /static/mp-weixin/alivc-im.wasm.br
- // 如果您参考了上面 Taro 工程的目录结构,那么这里返回 /static/alivc-im.wasm.br
- return "/static/mp-weixin/alivc-im.wasm.br";
- }
- return url;
- },
- });
- // 需确认init异步操作成功后,才可以继续执行login等操作
- // 初始化成功,监听事件
- engine.on("connecting", () => {
- console.log("connecting");
- });
- engine.on("connectfailed", (err) => {
- console.log(`connect failed: ${err.message}`);
- });
- engine.on("connectsuccess", () => {
- console.log("connect success");
- });
- engine.on("disconnect", (code) => {
- // code 断开原因 1:主动退出, 2:被踢出 3:超时等其他原因 4:在其他端上登录
- console.log(`disconnect: ${code}`);
- });
- engine.on("linkstate", (data) => {
- // 链接状态发生变化,state 状态 0:未连接 1:连接中 2:已连接 3:已断联
- console.log(`previousState: ${data.previousState}, currentState: ${data.currentState}`);
- });
- engine.on("reconnectsuccess", (groupInfos) => {
- // 重连成功,会返回所在群组的数据
- console.log(groupInfos);
- });
- engine.on("tokenexpired", async (cb) => {
- // 这里需要更新为获取新的登录信息的代码
- const auth = await getLoginAuth();
- cb(null, {
- timestamp: 22123123, // 服务端返回timestamp值
- nonce: "nonce", // 服务端返回nonce值
- token: "xxx", // 服务端返回token值
- });
- });
- } catch (error) {
- // init 错误码含义
- // 1001:重复初始化、1002:创建底层引擎失败、-1:底层重复初始化、-2:初始化配置信息有误
- console.log(`Init Fail: code:${error.code}, message: ${error.msg}`);
- }
- };
- export { initEngine };
|