在 Electron 中使用 OpenReplay

如何使用 OpenReplay 录制 Electron 应用。

在 Electron 中使用 OpenReplay

将 OpenReplay 集成到 Electron 应用中有两种不同的方式。

无论你选择哪一种,都需要检查你的 CSP 设置,以允许以下 API:

  • WebWorkers(用于存储、编码和发送消息批次)
  • Websockets(用于 assist 插件实时传输会话)
  • Peers(用于 assist 插件的通话)

你可以将 OpenReplay 代码片段直接添加到应用 HTML 文件的根部。 这是最简单的方式,但它也带有 JS 代码片段的所有限制。

如果你使用 React、Angular 或 Vue,你可以采用完全相同的方式,在应用内的渲染进程中创建 tracker 实例。 这将使你能够使用 OpenReplay 的所有功能,包括所有插件。

若要在渲染上下文之外使用 tracker API,你需要通过 IPC,借助从主进程发送的事件来触发相应的操作。

对于 Tracker-Assist 插件,你需要添加 socketHost 属性,使其指向不带 /ingest 后缀的接入点,以确保默认的 WS 路由正确无误。

对于 NPM 库:

new Tracker({ ingestPoint: 'https://mywebsite.com/ingest' })

// ...

// or https://app.openreplay.com if you're using SaaS version
tracker.use(trackerAssist({ socketHost: 'https://mywebsite.com' }))

对于代码片段:

  var initOpts = {
    projectKey: "...",
		ingestPoint: "https://mywebsite.com/ingest",
    assistSocketHost: "https://mywebsite.com"
  };

否则,WS 将尝试在 ws://file/ingest 上创建连接,从而导致失败。