Why do I get ReferenceError: RTCPeerConnection is not defined in Next.js?

Why do I get ReferenceError: RTCPeerConnection is not defined in Next.js?

我正在尝试 const pc = new RTCPeerConnection(),而我得到 ReferenceError: RTCPeerConnection is not defined。我该如何克服这个错误?

这不是我的浏览器,我可以 运行 webRTC 本机在它们上。

Next.js pre-renders every page 在服务器上。在页面被预呈现时尝试使用 Web API 会抛出您所看到的错误,因为这些 Web API 不存在于 Node.js 环境中。

要解决它,请确保在组件的 useEffect 中调用 new RTCPeerConnection(),这样它只会在客户端调用。

useEffect(() => {
    const pc = new RTCPeerConnection()
    // Rest of your logic here
}, [])