socket.io是WebRTC还是WebSocket还是别的什么?

时间:2016-03-19 17:30:21

标签: websocket socket.io webrtc sip

我是socket.io的新手。在实时(Web)应用程序中,我们过去常常选择WebRTC或WebSocket(甚至是SIP,还是?)技术。

在这种情况下,socket.io究竟是什么?

2 个答案:

答案 0 :(得分:2)

如果您想制作视频或音频通信服务,请使用WebRTC进行浏览器构建并编写发现和信令。 webrtc具有P2P连接和数据加密等强大功能。

WebRTC客户端(浏览器)功能,例如在evergree浏览器中获取视频和音频数据,具有良好的支持:http://iswebrtcreadyyet.com/#interop

socket.io适用于构建集中式发布/子应用程序,如文本聊天

您可以在没有socket.io的情况下与WebRTC建立连接,但是如果您使用socket.io来帮助发送信号,那么两者都可以正常工作

答案 1 :(得分:2)

WebSockets

socket.io是在后端和客户端均实现的流行开源库。该库基于WebSockets API,它允许 SERVER CLIENT 之间进行通信。


WebRTC

另一方面,WebRTC是另一个WebAPI,它基本上包含以下三点内容:

    在两个浏览器(无需服务器)之间进行
  • R eal T ime C 通讯,即对等连接(P2P)

  • 媒体流(音频和视频)

  • R eal T ime C 通讯数据香奈儿(在P2P上传输任何数据)


主要区别在于WebSockets需要一个服务器,并且基于发布/订阅模式,您可以在其中来回发送原始数据,而无需任何特殊数据默认处理。相比之下,WebRTC已经拥有许多功能,可用于处理音频/视频流以及带有数据通道的原始数据。


有关更多信息,我建议阅读上面提供的MDN链接,并查看<{> sockets 和 webRTC

上的this非常酷的幻灯片