【发布时间】:2016-03-19 17:30:21
【问题描述】:
我是socket.io 的新手。在实时 (Web) 应用程序中,我们过去常常选择是 WebRTC 还是 WebSocket(甚至是 SIP,还是?)技术。
请问在这种情况下socket.io 到底是什么?
【问题讨论】:
标签: websocket socket.io webrtc sip
我是socket.io 的新手。在实时 (Web) 应用程序中,我们过去常常选择是 WebRTC 还是 WebSocket(甚至是 SIP,还是?)技术。
请问在这种情况下socket.io 到底是什么?
【问题讨论】:
标签: websocket socket.io webrtc sip
socket.io 是一个在后端和客户端都实现的流行开源库。该库基于WebSockets API,它允许SERVER 和CLIENT 之间进行通信。
另一方面,WebRTC 是一个 WebAPI,它基本上包含 3 个东西:
Real Time C两个浏览器之间的通信(无需服务器),点对点连接 (P2P)
媒体流(音频和视频)
Real Time C通信数据通道(在 P2P 上传输任何数据)
主要区别在于 WebSockets 需要 服务器,它基于 发布/订阅模式,您可以在其中来回发送原始数据,而无需任何特殊数据默认处理。相比之下,WebRTC 已经有很多功能可以用来处理音频/视频流以及带有数据通道的原始数据。
有关更多信息,我建议阅读我在上面提供的 MDN 链接,并查看 sockets 和 webRTC 上的 this 非常酷的幻灯片
【讨论】:
如果您想制作视频或音频通信服务,请使用 WebRTC 浏览器内置支持并编写发现和信令。 webrtc 具有很棒的功能,例如 P2P 连接和数据加密。
WebRTC 客户端(浏览器)功能,例如在 evergree 浏览器中获得良好支持的视频和音频数据:http://iswebrtcreadyyet.com/#interop
socket.io 非常适合构建集中的发布/子应用程序,例如文本聊天
您可以在没有 socket.io 的情况下与 WebRTC 建立连接,但如果您使用 socket.io 来获取信号帮助,两者都可以正常工作
【讨论】:
socket.io 到底是什么?它基于WebRTC吗?还是 WebSockets?还是别的什么?