我的一项大学任务是开发一个P2P文件共享Web应用程序,以便在同一本地网络上的机器之间传输文件。我不是在寻找关于如何做到这一点的讲义,一旦我得到高级设计,我就能弄明白,我只需要知道这是否理智。
我打算使用PeerJS库。据我所知,每个客户端都获得一个唯一的ID,这些ID用于将客户端相互连接。所以我需要在同一个本地网络上的所有客户端之间协调ID。
我计划这样做的方法是让NodeJS服务器运行Socket.IO。当客户端加载Web应用程序时,它们会向节点服务器发送websocket请求。然后,节点服务器记录客户端的外部IP地址。当另一个客户端连接并使用与另一个客户端相同的外部IP地址发出请求时,这两个客户端将获得彼此的ID,以便它们可以相互连接。
这有一些潜在的问题:
computer 1 -> router/switch -> computer 2
,而不是computer 1 -> router/switch -> local exchange -> ISP switch -> local exchange -> router/switch -> computer 2
。基本上,转移不应该让本地网络进入互联网。思想?