WebRTC或WebSockets用于广播stream媒体video?

我的架构是[ arch0.dot ]:

圆环

一台笔记本电脑是[广播]向所有[JavaScript]客户端传输两个video和两个audiostream。 另外我有一个WebSockets连接聊天。

服务器[用Node.JS写入]必须:

  • logging聊天logging(目前通过附加文件来完成)
  • 录制video和audiostream(客户端目前通过MediaRecorder执行此操作 ,但要移至服务器)

相关: WebRTC vs Websockets:如果WebRTC可以做video,audio和数据,为什么我需要Websockets?

2017年下半年,哪种技术最适合这种常见的架构?

WebRTC和WebSockets都是一个很好的技术select。 当您构buildWebRTC服务时,有两个不同的部分: 对等连接和信令服务器。 信令服务器处理对等体之间的所有元数据传输(以便它们可以在对等连接进行之前进行通信)。 通常,您将拥有用于接收事件的WebSocket连接和用于发送事件的REST API。

这听起来是你要求的是一个媒体服务器。 媒体服务器使WebRTC连接到对等到媒体服务器到对等连接,而不是对等连接。 由于所有媒体都通过媒体服务器,所以您可以logging所有的stream量(audio/video/数据),而且不需要在客户端使用MediaRecorder。

你不需要在服务器端的任何特殊的支持audio/videostream的单向通信,可以在WebRTC的客户端完成。

关于媒体服务器,我一直在寻找https://github.com/versatica/mediasoup/,因为他们似乎被用了很多,并维持很长一段时间。

Websockets是一个10年前的概念,WebRTC是相当新的(几年),但在所有现代浏览器:铬,火狐,边缘可用。 总体而言,我会说WebRTC旨在作为Websockets的替代品。 现在浏览器一年或更长时间了,这是一个相当成熟和稳定的解决scheme。