我正在开发一个实现 webRTC 技术的项目,我想知道我是否可以使用数据通道来像 webSockets 那样发送信号,或者数据通道可以通过发送全局数据来替换对等连接,所以我需要使用 webSockets 来制作信令部分到服务器?
3 回答
事实上,答案是肯定的。
让我详细说明一下:一旦连接了 PeerConnection(通过任何方式 - WebSockets、https 等),那么您可以重新协商(新的 CreateOffer/CreateAnswer/etc)并通过 DataChannel 发送它们。这意味着在某些情况下,重新协商明显更快,特别是对于两个端点都远离服务器的情况,或者如果两者都在同一个 LAN 中,等等(也降低了服务器上的负载,尽管这可能无关紧要,并且不依赖于维护呼叫状态的服务器。)
您还可以通过 PeerConnection 使用 DataChannel 到充当会议中心或信令服务器的服务器,以进行重新协商(在会议中)并启动与连接到集线器或服务器的其他人的连接。
如果是“我想直接随机连接到其他人而不通过服务器”,答案是否定的;您首先需要一个已连接的 PeerConnection。如果您想交换报价和答案,可以使用IPoAC 。之后,您可以使用 DataChannels(它可能会更快一些)。
我觉得不行!!!
因为对于第一次握手,您需要一个服务器来发送信号。
而且我认为如果没有握手,我们将无法使用DataChannel共享文本或文件。
我对这个仅限 JavaScript 的 WebRTC 实验做了同样的事情!- 见源代码。我使用PubNub进行信令和ICE交换的地方。
正如jesup所说,答案是肯定的。
信令可以发生在任何传输上。我推荐使用 websockets,因为大多数浏览器都支持它。
如果您不想经历设置自己的信令服务器的麻烦,您可以使用 Pubnub 或Pusher为您处理。
如果您有兴趣了解更多信息,这里有一个webRTC 信令教程。
http://pusher.com/tutorials/webrtc_chat
免责声明:我在 Pusher 工作。