浏览器无法直接加入 VSCode Live Share 会话,因其依赖 WebRTC 3.0、本地文件系统、Node.js 进程及原生密钥存储,均超出浏览器沙箱能力;唯一可行方案是通过 code-server 中转,需主持人在其 code-server 实例中安装 Live Share 插件并启动会话,你再通过浏览器访问该 code-server 地址参与协作。

浏览器端无法直接加入 VSCode Live Share 会话——Live Share 协议不支持纯 Web 客户端接入,必须使用桌面版 VSCode 客户端(含 Windows/macOS/Linux)或 code-server 实例。
为什么浏览器打不开 Live Share 链接?
点击 https://vscs.live/abc123?sig=xyz&exp=1748765200 这类链接时,浏览器会跳转到 VSCode 官网下载页或提示“请在 VSCode 中打开”,因为:
- Live Share 的 P2P 网络层依赖 WebRTC 3.0 + 本地文件系统访问权限,浏览器沙箱环境无法满足
- 操作同步引擎(OT+CRDT 混合)需运行在 Node.js 进程中,而 VS Code Web 版仅支持 Web 扩展,不加载 Live Share 插件
- 信令协商与端到端加密密钥派生需要本地密钥存储(如 Windows Hello / Keychain),浏览器无对应 API 支持
浏览器端唯一可行的替代方案:用 code-server 中转
如果你只有浏览器可用,且对方已启动 Live Share 会话,可让主持人先在 code-server 实例中加入该会话,再将 code-server 地址分享给你。你通过浏览器访问该地址,即可间接参与协作。
- 主持人需在
code-server中安装 Live Share 扩展(ms-vsliveshare.vsliveshare)并登录微软账户 - 主持人执行
Live Share: Start Collaboration Session后,生成的链接仍不可被浏览器直连,但其code-server实例本身已成为“协作代理” - 你只需访问
https://your-code-server-domain:8080,就能看到共享编辑器、终端和调试器状态(延迟略高于原生,约 180–220ms)
常见错误:误以为 VS Code Web 能加入 Live Share
访问 vscode.dev 或自建 VS Code Web 实例(如 https://monaco.example.com)时,即使看到 Live Share 图标,点击也会报错:Cannot start collaboration session in web environment。
- VS Code Web 版只加载标记为
"browser"兼容的扩展,而 Live Share 的package.json中extensionKind仅声明为["ui", "workspace"] - 其底层依赖的
vscode-liveshare-audio、vscode-liveshare-text等子模块均含原生 Node.js 绑定,WebAssembly 无法替代 - 即使强行注入脚本绕过检查,也会在首次广播编辑操作时触发
TypeError: navigator.mediaDevices is undefined
真正要实现“浏览器端实时协作”,不要试图让 Live Share 在浏览器里跑,而是把协作入口前移到 code-server ——它才是当前唯一能同时满足浏览器访问 + Live Share 全功能的中间层。注意检查主持人 code-server 实例是否启用了 --auth none 或正确配置了反向代理的 WebSocket 透传(Upgrade 和 Connection header 必须透传),否则你会卡在“正在连接…”界面不动。


















