You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React集成enigma.js初始化WebSocket出现subprotocol '[object Object]'无效错误

问题根因

你报错的直接原因是WebSocket构造函数的入参使用错误:

  • WebSocket第二个参数接收的是子协议配置,仅支持字符串、字符串数组两种类型,你传了空对象{},对象被强制转为字符串时就变成了"[object Object]",正好对应你收到的无效子协议报错。
  • enigma.js的createSocket配置项如果不需要额外自定义子协议,直接传url参数即可,不需要第二个空对象参数。
修复后的代码
async init() {
  const appId = "133dab5d-8f56-4d40-b3e0-a6b401391bde";
  const url = "wss://sense-demo.qlik.com/app/133dab5d-8f56-4d40-b3e0-a6b401391bde"; 

  const session = enigma.create({
    schema,
    // 去掉WebSocket构造函数的第二个空对象参数即可
    createSocket: () => new WebSocket(url),
  });

  const global = await session.open();
  const app = await global.openDoc(appId);
  const appLayout = await app.getAppLayout();

  console.log(appLayout);
}
额外验证点

如果后续需要自定义请求头、身份凭证等配置,直接在WebSocket构造函数的第三个参数(选项参数)中配置即可,不要和第二个子协议参数混淆。

内容的提问来源于stack exchange,提问作者gangata arun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:48:01