PeerJS或WebRTC对等连接是否需要服务器或仅在客户端之间
Does PeerJS or WebRTC peer connection require a server or it's only between clients?
我正在研究一个项目,该项目应允许用户相互连接(1对1)并通过网站聊天。如果我使用http://peerjs.com/实现或其他自定义的WebRTC对等连接解决方案,我是否需要一个服务器来代理这些连接?如果有,目的是什么?我认为WebRTC对等连接的全部意义在于允许用户对用户的直接连接。
我认为WebRTC对等连接的全部意义在于允许直接用户到用户的连接。
直接用户到用户连接是指两个用户直接交换数据,中间没有任何中继服务器的P2P连接。但要做到这一点,它们首先需要相互连接。为此,它们需要彼此的IP地址和其他相关信息。
互联网上的两个设备不可能知道彼此的地址,除非它们以某种方式交换这些信息。这就是为什么要使用SIP、XMPP等信令服务器的原因。对等体登录到这些服务器以交换这些IP信息。当点A和点B都登录到一个SIP服务器上时当点A想和点B通信时,
1) A将其IP信息发送给sip服务器。Sip服务器将此信息转发给b。
2)当对等体B收到信息后,将其IP地址发送给SIP服务器,SIP服务器将其转发给对等体a。
3)当双方都知道对方的IP信息后,他们可以直接连接到对方,而不需要再次使用SIP服务器。
这就是P2P连接。它只使用信令服务器在对等体之间建立连接,然后再建立P2P连接。
但是,即使知道每个对等体的所有Ip信息,P2P连接也不总是可能的。有一些nat使得无法创建P2P连接。但那是另一个话题了。
对等体需要某种方式找到彼此并建立媒体连接。服务器是一种方便的方法。您可以为交换SDP消息的信令设置直接连接,但这是否有效取决于您是否知道端点的地址和防火墙是否正确配置。例如,移动电话和笔记本电脑的IP地址将频繁变化,这使得直接定位它们变得困难。交换信息以启动对等连接的过程称为信令。
对等连接中的媒体通常在对等体之间发送,尽管您也可以通过TURN服务器发送媒体。
与通过对等连接发送的媒体相比,WebRTC过程的信令部分非常轻量级。由于使用服务器进行信令的简单性,因此经常使用服务器进行信令。
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 将客户端特定的日期格式返回到服务器MVC4
- 服务器上的Meteor客户端断开连接事件
- 在Javascript服务器/客户端中共享对象定义
- 可以't连接客户端和服务器import.io
- 套接字服务器向客户端广播,但不从两者接收
- 使用COMETD将服务器推送到客户端(dojo)
- 了解如何在javascript/HTML5/NodeJS中实现客户端-服务器-客户端基础结构
- 服务器过载..有要求?如何有效地对服务器-客户端进行编程
- Math.sin()在服务器/客户端上给出不同的结果
- Internet Explorer浏览器问题:浏览器不提交POST数据与Ajax请求,服务器/客户端挂起
- 如何在连接服务器客户端之前获得IP地址(使用websockets/ws)
- Node.js服务器/客户端模块混乱,EventEmitter问题
- 服务器-客户端推/拉连接是如何工作的
- 如何执行在服务器/客户端使用回调参数的javascript函数
- 最好的jQuery/Java PHP解决方案为本地主机服务器-客户端实时聊天