4

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

使用 websocket (dnode)

这是限制:

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

可能吗?谢谢

4

2 回答 2

2

也许您可以使用PeerJS来实现您的目标。PeerJS 简化了 WebRTC 点对点数据、视频和音频调用。PeerJS 封装了浏览器的 WebRTC 实现,以提供完整、可配置且易于使用的点对点连接 API。只配备一个 ID,对等点就可以创建到远程对等点的 P2P 数据或媒体流连接。

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

于 2015-07-10T12:30:01.263 回答
1

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

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

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

于 2012-07-16T17:36:00.847 回答