我有简单的webrtc视频聊天,只能支持两个用户(通过扩展此无服务器实现https://github.com/cjb/serverless-webrtc/) 我正在建立这样的连接:第一个用户打开一个页面并单击创建按钮,商品被保存到服务器上的文件,创建者开始发送重复的ajax请求以检查答案。
用户2连接到页面并单击连接,他通过ajax从服务器获取提议,生成答案并通过ajax将其保存到文件中。
用户1现在可以通过他的ajax从用户2获取答案,并且他们已成功连接。
问题是当用户2刷新页面并尝试再次连接时。用户1检测到iceConnectionState ==='已断开连接'并开始再次检查答案...用户2生成答案后没有任何反应。我可以看到他正在创建答案,用户1正在接受它,但是peer.onopen再也没有被解雇,我无法连接用户。
在尝试重新连接之前,我应该做些什么吗?以某种方式清除流,清除连接,重新初始化等等
答案 0 :(得分:0)
这不是无服务器的。它只是基于轮询的客户端 - 服务器信令。
听起来用户1的RTCPeerConnection正在关闭页面刷新。您需要重新创建RTCPeerConnection,然后重新创建createOffer,以便在其上设置本地描述。如果您使用之前生成的商品(页面刷新前的商品)调用setLocalDescription,然后尝试接受答案,我不知道它是否可行。