1Ma*_*tup 196 websocket webrtc
因此,我希望建立一个允许视频,音频和文本的聊天应用程序.我花了一些时间研究Websockets和WebRTC来决定使用哪个.由于WebRTC有很多视频和音频应用程序,这听起来是一个合理的选择,但还有其他我应该考虑的事情吗?随意分享您的想法.
像:
由于新的WebRTC仅在某些浏览器上可用,而websockets似乎在更多的浏览器中.
可伸缩性 - Websockets使用服务器进行会话,而WebRTC似乎是p2p
多路复用/多个聊天室 - 用于Google+环聊,我仍然可以查看有关如何实施的演示应用
服务器 - Websockets需要RedisSessionStore或RabbitMQ来扩展多台计算机
Sam*_*ton 246
WebRTC专为视频,音频和任意数据的高性能,高质量通信而设计.换句话说,对于与您描述的完全相同的应用程序.
WebRTC应用程序需要一种服务,通过它可以交换网络和媒体元数据,这一过程称为信令.然而,一旦发生信令,视频/音频/数据就直接在客户端之间流式传输,从而避免了通过中间服务器进行流式传输的性能成本.
另一方面,WebSocket专为客户端和服务器之间的双向通信而设计.可以通过WebSocket流式传输音频和视频(例如,请参见此处),但技术和API并非本身设计用于以WebRTC的方式进行高效,强大的流式传输.
正如其他回复所说,WebSocket可用于信令.
我保留了WebRTC资源列表:强烈建议您首先查看有关WebRTC 的2013 Google I/O 演示文稿.
kan*_*aka 64
WebSockets简介:
经过批准的IETF标准(6455),支持所有现代浏览器甚至是使用web-socket-js polyfill的旧版浏览器.
使用HTTP兼容的握手和默认端口,使其更容易与现有的防火墙,代理和Web服务器基础结构一起使用.
更简单的浏览器API.基本上是一个带有几个回调的构造函数.
客户端/浏览器仅限服务器.
仅支持可靠的有序传输,因为它是在TCP上构建的.这意味着丢包可以延迟所有后续数据包.
的WebRTC:
刚刚开始受到Chrome和Firefox的支持.MS提出了一种不兼容的变体.Firefox和Chrome之间的DataChannel组件尚不兼容.
WebRTC在理想情况下是浏览器到浏览器,但即便如此,也几乎总是需要信令服务器来设置连接.最常见的信令服务器解决方案现在使用WebSockets.
传输层可配置为应用程序,能够选择连接是否有序和/或可靠.
复杂的多层浏览器API.有JS库提供一个简单的API,但这些年轻和快速变化的(就像自己的WebRTC).
ank*_*itr 51
Websockets使用TCP协议.
WebRTC主要是UDP.
因此,使用WebRTC而不是Websocket的主要原因是延迟.使用websocket流式传输,您将获得高延迟或低延迟的不稳定播放.使用WebRTC,您可以实现低延迟和流畅的播放,这对于VoIP通信至关重要.
试着用网络损耗测试这些技术,即2%.您将看到Websocket流中的高延迟.
Mik*_*ren 38
webRTC或websockets?为什么不两者兼用.
在构建视频/音频/文本聊天时,webRTC绝对是一个不错的选择,因为它使用对等技术,一旦连接启动并运行,您就不需要通过服务器传递通信(除非使用TURN).
在设置webRTC通信时,您必须涉及某种信令机制.Websockets在这里可能是一个不错的选择,但webRTC是获取视频/音频/文本信息的方式.聊天室在信令中完成.
但是,正如您所提到的,并非每个浏览器都支持webRTC,因此websockets有时可以成为这些浏览器的良好后备.
小智 9
安全是您错过的一个方面.
使用Websockets,数据必须通过中央网络服务器进行,中央网络服务器通常可以查看所有流量并可以访问它.
使用WebRTC,数据是端到端加密的,不会通过服务器(除非有时需要TURN服务器,但他们无法访问它们转发的消息体).
根据您的应用,这可能或不重要.
如果您要发送大量数据,那么由于webRTC的P2P架构而节省的云带宽成本也值得考虑.
小智 8
Websocket和WebRTC可以一起使用,Websocket作为WebRTC的信号通道,而webrtc是视频/音频/文本通道,同时WebRTC可以是UDP也可以是TURN中继,TURN中继支持TCP HTTP也支持HTTPS。许多项目同时使用Websocket和WebRTC。
比较websocket和webrtc是不公平的.
Websocket基于TCP.与tcp不同,可以从websocket分组的头信息中检测分组的边界.
通常,webrtc使用websocket.webrtc的信令没有定义,服务提供商需要使用什么样的信令.它可以是SIP,HTTP,JSON或任何文本/二进制消息.
可以使用websocket发送/接收信令消息.
归档时间: |
|
查看次数: |
85382 次 |
最近记录: |