所以我想建立一个聊天应用程序,将允许视频,音频和文本。我花了一些时间研究Websockets和WebRTC来决定使用哪个。既然有很多WebRTC的视频和音频应用程序,这听起来是一个合理的选择,但我还应该考虑其他事情吗?
欢迎分享你的想法。
喜欢的东西:
由于WebRTC是新的,它只在一些浏览器上可用,而WebSockets似乎在更多的浏览器中可用。
可伸缩性——Websockets使用服务器进行会话,WebRTC似乎是p2p的。
多路/多聊天室-用于谷歌+ Hangouts,我仍然在查看如何实现的演示应用程序。
服务器- Websockets需要RedisSessionStore或RabbitMQ来跨多台机器扩展。
WebRTC是专为高性能、高质量的视频、音频和任意数据通信而设计的。换句话说,就像你描述的那样。
WebRTC应用程序需要一种服务,通过它可以交换网络和媒体元数据,这个过程被称为信令。然而,一旦信号发生,视频/音频/数据直接在客户端之间流媒体,避免了通过中间服务器流媒体的性能成本。
另一方面,WebSocket是为客户端和服务器端的双向通信而设计的。在WebSocket上传输音频和视频是可能的(参见这里的例子),但是该技术和api并不是像WebRTC那样为高效、健壮的流媒体而设计的。
正如其他回复所说,WebSocket可以用于发送信号。
我维护了一个WebRTC资源列表:强烈建议你从2013谷歌关于WebRTC的I/O演示开始。