我正在开发一个实施webRTC技术的项目,我想知道我是否可以使用数据通道来发送信号,如webSockets或数据通道可以通过发送全局数据来替换peerconnection,因此我需要使用webSockets来制作信令部分到服务器?
由于
答案 0 :(得分:7)
实际上,答案是肯定的。
让我详细说明:一旦连接了PeerConnection(通过任何方式 - WebSockets,https等),您就可以重新协商(新的CreateOffer / CreateAnswer / etc)并通过DataChannel发送它们。这在某些情况下意味着更快的重新协商,特别是对于两个端点都远离服务器,或者两者都在同一个局域网等情况下(也可以降低服务器上的负载,尽管这可能无关紧要,并且不依赖于服务器维持呼叫状态。)
您还可以通过PeerConnection将DataChannel用作充当会议中心或信令服务器的服务器,以进行重新协商(在会议中),并启动与连接到集线器或服务器的其他人的连接。
如果是“我想在不通过服务器的情况下随机直接连接到其他人”,答案是“否”;你首先需要一个连接的PeerConnection。如果您想要交换优惠和回答,可以使用IPoAC。在此之后你可以使用DataChannels(它可能会快一点)。
答案 1 :(得分:0)
我认为不 !!!
因为第一次握手,你需要一个服务器来发信号。
我认为如果没有握手,我们将无法使用 DataChannel 分享文字或文件。
我和this JavaScript Only WebRTC Experiment做了同样的事情! - 见source code。我使用PubNub进行信号传输和 ICE 交换。
答案 2 :(得分:0)
如jesup所述,答案是肯定的。
信号可以在任何传输上发生。我建议使用websockets,因为大多数browsers support it。
如果您不想轻松设置自己的信令服务器,可以使用Pubnub或Pusher为您处理。
如果您有兴趣了解更多内容,请参阅webRTC signaling教程。
免责声明:我在Pusher工作。