2017-02-24 67 views
2

据我所知,信令服务器的作用是在你想与之通信的网页浏览器之间交换sdp。在webRTC中,当sdp交换完成时,websocket的角色是否完成?

我的理解过程如下。

  1. Web浏览器通过WebSocket的
  2. 服务器通过彼此的SDP回Web浏览器通过SDP信令服务器。
  3. 传输完成后,关闭Web套接字。
  4. 之后,Web浏览器可以在没有信号服务器相互通信

难道我得到它吗?

回答

1

这取决于你是否使用香草或涓流ICE。

在涓流ICE中,ICE候选人不是通过STUN发现的,例如在发送SDP之前。在这种情况下,您的webRTC端点可能无法通信,因为它们还不能彼此通信。信令层仍然需要中继ICE候选者以建立对等连接。一旦建立了对等连接,就不再需要信令。我见过的大多数实现都使用trickle ICE,因为它通常会减少建立对等连接的延迟。

在香草ICE中,ICE候选人在发送SDP前被发现。在这种情况下,发送SDP后信令完成。

+1

没错。此外,如果您想[在通话过程中添加媒体](http://stackoverflow.com/a/30022892/918910),您仍然需要信令信道,除非您[设置数据信道用于信号传输](http ://stackoverflow.com/q/30016613/918910)。使用数据通道传输信号的风险是,如果ICE(网络)故障导致您需要重新启动ICE,则不会为您节省。 – jib