注意:我已经阅读了this个问题,主要答案以及所有相关问题(超过8个问题,例如this one,但它涉及Flash等。 )。他们都是〜2011年,由于WebRTC等新技术,事情可能会发生变化。
问题:
如果我将我的IP提供给朋友,并且他给了我他的IP,我们可以直接在浏览器中使用Javascript发送字节吗?(两个用户不在同一个本地网络中但通过互联网连接)
如果可能,没有任何第三方服务器。在这种情况下,我们都会加载一个包含Javascript代码的本地HTML文件,允许相互连接。似乎可以使用"chownat"执行此类操作:
允许NAT后面的客户端与单独的NAT后面的服务器进行通信, no 端口转发 no DMZ设置, no 第三方参与
如果没有任何服务器是不可能的,那么是否可以在流程开始时涉及服务器? (使同伴相遇/相互了解/发起连接)。然后一旦建立连接,就不再需要服务器了:2个对等体相互发送字节,没有服务器。
现在是否可以使用标准浏览器(Firefox,Chrome等)并且没有任何路由器端口配置?以WebRTC为例?
注意:我已经阅读了RTCDataChannel
并尝试了Simple_RTCDataChannel_sample,但我不知道两个遥远的人如何使用它来相互联系,这个示例没有#&# 39;覆盖那个。这是live demo。我不知道如何将它变成互联网上两个同伴之间的联系。
答案 0 :(得分:0)
如果我将我的IP提供给朋友,并且他给了我他的IP,我们可以直接在浏览器中使用Javascript向对方发送字节吗? [...]如果可能,没有任何第三方服务器。
不,WebRTC使用无法重用的会话建立令牌,必须为每个连接重新生成它们。 IP地址不足以建立连接,至少还必须手动生成和交换这样的令牌......
如果没有任何服务器是不可能的,那么是否可以在流程开始时涉及服务器?
是的,服务器将作为交换点来交换令牌,也可以作为STUN服务器。
现在是否可以使用标准浏览器(Firefox,Chrome等)并且没有任何路由器端口配置?
这取决于你的路由器,更具体地说,取决于types以及每一方有多少层NAT。但如果它们表现良好,那么浏览器将在STUN服务器的帮助下尝试NAT遍历以建立直接连接。
但是一般来说,浏览器在NAT遍历方面的功能要低于本机应用程序,因为本机应用程序可以与防火墙,UPnP / PMP / PCP路由器通信,也可以尝试NAT遍历技术(例如基于TTL的打孔,线性端口猜测) )这不是标准ICE / STUN方法的一部分。