P2P网络编程

7
我尝试了解一些关于这方面的信息,我有一些模糊的记忆,看到过用Flash或Silverlight演示p2p技术,我想知道是否有好的方法从JavaScript中使用它。 我希望服务器作为客户端的连接器而不是数据的代理。 你能指出哪些库或网站做过类似的事情吗? 谷歌没有给我太多信息。 我不需要简单的解决方案,只需要一个起点。

1
如果您计划在互联网上使用它,您需要代理服务器。大多数计算机都位于NAT后面。 - Fox32
4
JavaScript也有同源策略 - 脚本只能与其来源服务器以及可能在同一域中的其他服务器通信,而不能与任意主机通信。即使您在JS中拥有P2P客户端,仍然需要一个服务器代理来使其工作。 - Marc B
但是有几个工具可以通过代理服务器在JavaScript中创建P2P连接。 - Fox32
嗨,评论者们。它不需要使用DOM的Ajax API,如果需要的话,我不介意使用Flash、Silverlight或甚至Java进行桥接。最好选择跨平台的东西,而不是一些COM组件。 - megakorre
Flash也有打开连接的限制,但是你可以在服务器上使用crossdomain.xml定义文件来放宽限制。Java可能需要作为签名小程序来完成,以便可以打开特定的连接和/或每次请求提升权限。 - Marc B
7个回答

9
今天我在Hackernews上发现了这个网站:http://peerjs.com/。在他们的页面上,他们表示:
PeerJS封装了WebRTC实现,提供了完整、可配置和易于使用的点对点数据API。每个对等方仅需提供一个标识符,其他使用相同API密钥的对等方即可连接。
听起来非常有趣,我必须试一试:D

5

4
你所需要的技术叫做 Adobe Cirrus(之前称为 Adobe Stratus),它可以让你使用 Flash 播放器实现点对点通信。然后,从 JavaScript 中调用这个技术也是很简单的。

谢谢Tom,我会研究一下的 :D - megakorre
你在寻找基于浏览器的解决方案吗? - Tom

3
如果您想从现有代码中学习,我几个月前开始了一个项目,该项目使用RTMFP(Adobe Cirrus)作为连接到服务的对等方之间的通信。如果您想查看它,可以在这里找到。到目前为止,我还没有时间对其进行详细文档说明,但如果您有问题,可以在github上向我提问。
如果您想从较小的示例开始,我已经做了一个JS接口,可以让您使用Javascript进行P2P连接。

2

我也是这么想的。我肯定会研究一下node.js,因为它是a)基于事件的,b)非常可扩展的。 - Betamos
但我认为楼主正在寻找在浏览器中运行的东西。 - Tom
我认为实现phpWebsockets并不难,但我个人还没有尝试过。 - mazlix

0

我还没有尝试过,但anansi可能是一个不错的起点。需要Node.js。

"感谢"部分中的两个 链接绝对值得一看。


0
如果您需要一个仅使用JavaScript的浏览器客户端并愿意为此付费,请查看...

http://www.pubnub.com/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接