live.js 2.6 KB

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