是否可以在不同的网络中创建对等连接?

时间:2012-07-06 03:45:51

标签: node.js websocket p2p reverse-proxy dnode

我想在2个nodejs客户端之间建立点对点连接。

使用websocket(dnode)

这是限制:

  • nodejs客户端运行在2台,位于不同的网络中。
  • 他们在NAT或防火墙后面没有静态IP(192.168.1.100&和192.168.2.200)
  • 无权更改路由器的映射。
  • 在公共网络中只有静态Web服务器。 (可以通过人工改变文件)
  • 可以在pc(win)
  • 安装应用程序

有可能吗?感谢

2 个答案:

答案 0 :(得分:1)

您可以使用PeerJS来实现目标。 PeerJS简化了WebRTC点对点数据,视频和音频呼叫。 PeerJS包含浏览器的WebRTC实现,以提供完整,可配置且易于使用的对等连接API。除了ID之外,对等体可以创建到远程对等体的P2P数据或媒体流连接。

对于经纪人连接,PeerJS也连接到PeerServer。请注意,没有对等数据通过服务器; 服务器仅充当连接代理。

答案 1 :(得分:0)

如果通过点对点连接,则意味着对等体之间的直接连接(即,不是通过服务器),那么在大多数情况下理论上可能是理想的。但我从未见过有人实施过该解决方案。

您需要为TCP连接实施NAT穿孔系统(由于技术限制无法在软件层解决,因此它们并非总是100%成功)。然后,您只需要在此tcp连接之上实现websocket协议。

如果通过点对点连接,您可以通过中央服务器(带有公共地址)进行通信,那么也可以。两个对等体只需要连接到中央服务器,它应该只传输两个对等体之间的流量。