我正在尝试获取一个字符串,以通过RTCDataConnection
从一个浏览器窗口传递到另一个窗口。
有很多这种工作的例子,例如这里的一个: https://gitlab.com/lesmana/webrtc-without-signaling-server
这些功能在大多数浏览器中都可以很好地工作,但是,在Safari 12(至少是其桌面版本)中,尝试连接最终会导致在“提供/回答返回”和“第四个响应为”之后在连接状态下生成“失败”消息。说完了。
添加WebRTC adapter.js
不能解决任何问题。
但是,进一步地,似乎每个示例或教程都证明了RTCDataChannel
的通信……在Safari中都中断了。
这应该起作用吗?我在bugs.webkit.org中找不到任何相关问题。
答案 0 :(得分:3)
要求在没有信令服务器的情况下可以使用WebRTC的做法通常应加点盐。Safari在没有getUserMedia的情况下的行为确实有所不同,以避免泄漏IP地址。
在这种情况下,您要通过复制粘贴来交换pc.localDescription.sdp。 SDP不会不包括本地主机候选者(即使您在onicecandidate事件中获得了它们)。我已经提交了webkit bug。
如果在此期间要解决此问题,请记下具有“典型主机” here的任何候选者并将其添加为here(同时确保sdp仍然有效并且包含尾随换行符等)。 ,对于答录人也是一样。