我一直在谷歌上搜索,我仍然无法得到它。有人说:你去,只是用它。其他人声称它有某些限制,不允许你按照你想要的方式在Flash中使用p2p。
所以,这是一个简单的问题:是否可以实现Flash10应用程序,它使用一些现有的torrent文件将视频/音频流式传输到用户的浏览器中?
如果没有 - 为什么?这个'不'有没有可行的解决方法? 如果是的话 - 实施的难点是什么,为什么没有人真正做到呢?
答案 0 :(得分:12)
答案几乎不是......好吧,说实话,这是不对的 @drudru指出了适用于flash p2p的技术,即stratus。
Flash p2p基于RTMFP,它建立在UDP之上。实际上,flash确实绑定了一个端口,但这来自内部。没有API可以手动执行此操作。
RTMFP基本上允许两件事:
p2p基于NAT穿孔。 Stratus本身就是引入服务器。此外,出于安全目的,p2p连接也意味着,两个客户端必须具有与服务器的空闲TCP(如果我没记错)。我想,当然会传输一些数据,但不会传输有效数据。
然而,torrent协议与此非常不同。因此,这不是一种选择。您可以在RTMFP之上构建等效协议,反向工程stratus服务(或等到它的开源)。这当然也可以由非Flash客户端使用。但同样,您将无法将传输的数据视为视频,因为您可以获得对NetStream
客户端的一些调用,可能是ByteArray
。你无法回放ByteArray
。您可以编写非Flash客户端,将视频发布为流,但我认为这远远不是您想要的。
如果你真的想做这样的事情,你需要Java。您可以对Java小程序进行签名,如果用户接受了该证书,则他们几乎可以不受限制地访问,例如你可以绑定端口。既然Java可以做UDP,那么你可以拥有一个Java小程序,它可以完成托管(可能只是使用Vuze代码库),如果你真的想在flash中显示它(这又需要flv),那么你就可以模仿本地的“ Flash Media Server“并在localhost:someport上发布视频。但实际上,闪光灯对我来说似乎非常复杂和无用。而是尝试使用Java进行回放,希望可以选择本地使用Java。
答案 1 :(得分:2)
Flash不允许您在套接字上侦听传入连接。这个会 使用现有的种子真的很难。鉴于安全问题 在此周围,我不认为它发生了。
然而,Adobe已经开始使用名为Stratus的P2P系统。 你可以在这里阅读http://labs.adobe.com/technologies/stratus/答案 2 :(得分:2)
所有这些信息现已过时。
答案 3 :(得分:0)
嗯...这是一个有趣的命题,只将下载的文件保存在Flash的内存中。我认为这肯定是可能的,但可能很慢,你可以限制在几百兆字节。
编辑:这是不可能的,因为你不能只使用Flash来监听端口,浏览器没有那种类型的功能。