Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebRTC和Websockets。有区别吗_Javascript_Html_Websocket_Socket.io_Webrtc - Fatal编程技术网

Javascript WebRTC和Websockets。有区别吗

Javascript WebRTC和Websockets。有区别吗,javascript,html,websocket,socket.io,webrtc,Javascript,Html,Websocket,Socket.io,Webrtc,我假设WebRTC是一个对音频和视频进行解码/编码的API,尽管服务器和客户端之间的通信是通过web套接字或其他网络协议完成的?我有点困惑。WebRTC有自己的通信协议吗?WebRTC有两个方面 JavaScript API(getUserMedia),允许应用程序访问摄像头和麦克风硬件。您可以使用此访问在本地(可能)显示流,或者通过网络发送流。您可以将数据发送到服务器,也可以使用 PeerConnection,一种允许浏览器建立直接对等套接字连接的API。您可以直接与其他人的浏览器建立连接,并

我假设WebRTC是一个对音频和视频进行解码/编码的API,尽管服务器和客户端之间的通信是通过web套接字或其他网络协议完成的?我有点困惑。WebRTC有自己的通信协议吗?

WebRTC有两个方面

  • JavaScript API(
    getUserMedia
    ),允许应用程序访问摄像头和麦克风硬件。您可以使用此访问在本地(可能)显示流,或者通过网络发送流。您可以将数据发送到服务器,也可以使用
  • PeerConnection
    ,一种允许浏览器建立直接对等套接字连接的API。您可以直接与其他人的浏览器建立连接,并直接交换数据。这对于视频等高带宽数据非常有用,因为您不希望服务器必须处理大量数据的中继
  • 看看WebRTC的两个部分都在运行

    简言之:

    • WebSocket允许在浏览器和web服务器之间进行全双工通信
    • WebRTC的
      PeerConnection
      允许在两个浏览器之间进行全双工通信

      • WebRTC使用RTP(基于UDP的协议)进行媒体传输,但需要带外信令通道来设置通信。信令通道的一个选项是WebSocket。

        而不是
        peerConnection
        您还可以查看WebRTC数据通道草稿:它基本上是双向udp。这是WebSocket的一个非常有价值的替代方案,因为它没有tcp连接的“负面”方面。

        不,WebRTC没有定义信令

        以下是IETF的一篇帖子,它很好地解释了为什么它不是:


        这意味着您可以自由选择如何交换网络信息。也就是说,你可以使用websockets、HTTP甚至电子邮件,但那会有点困难:)

        WOW。。。谢谢你可能是我所能想到的最简洁的答案。*PeerConnection是一种P2P连接,握手阶段是否需要混合使用服务器?PeerConnection的任何API都需要服务器吗?“握手阶段是否需要混合服务器?”是。WebRTC是使用JSEP体系结构实现的,这意味着用户发现和信令是通过单独的通信通道完成的(例如,使用WebSocket或XHR和DataChannel API)。参见示例或(为自我提升道歉)@josh3736当你说“直接点对点套接字”和“全双工通信”时,这是否意味着有人在UDP协议之上为P2P通信(不是TCP,而是类似的协议)构建了一个可靠的、按包排序的、错误检查的解决方案?我的印象是WebRTC不支持P2P TCP连接。peerConnection可以在没有浏览器的情况下使用。iOS和Android(我相信还有x86)都有本地API。此外,音频和视频不是webrtc的唯一功能,您还可以打开数据通道,在各种其他创造性用途中以点对点的方式发送文件。这是由任何浏览器实现的吗?有例子吗?@jjoe64 peerConnection已经在Chrome和FireFox中实现了。这里的例子是:需要在浏览器和服务器(node.js)之间建立连接。不要建立点对点连接,首先两个对等点需要“找到”彼此。这是通过信号和选择性地通过眩晕/转身服务器完成的。