cenfee's blog->Flash.Flex.ActionScript.RIA.Js.Php(新博客地址:http://cenfee.com/)

导航

rtmfp开发peerTopeer(ptp)

  昨天参考了一些网上的资料,用rtmfp做了一个简单的ptp共享文件,首先去http://labs.adobe.com/technologies/cirrus/申请一个开发者钥匙,为什么呢?

使用rtmfp,你必须先连接到Adobe公司Stratus的服务,接着才可以进行端对端的传输。

  如果你是玩过fms的,上下载文件的,你会清楚很多,首先,我还是建议你先去as帮助文档搜搜这两类NetStream和FileReference

  你就把下面这个地址假设为fms的服务器地址,用netConnection连上这个服务器

private const SERVER_ADDRESS:String = "rtmfp://stratus.adobe.com/";
private const DEVELOPER_KEY:String = "951d096e7dd4ba1a656a741b-c12513aa9831";

netConnection.connect(SERVER_ADDRESS+DEVELOPER_KEY);

  等连接上后,双方都必须建立两条发送和接受的流(netStream),用一个object储存你共享文件的信息

 

var fileData:Object = new Object();
fileData.file = file.data;
fileData.name = file.name;

  通过流传送你的共享的文件,流在整个过程必须保持连接

 

sendStream.send("onFileReceived",fileData);

  通过流把文件的信息作为参数送到对方的onFileReceived接受函数

  函数接受时,就可以存储在数组中,柄作为子项存储在List列表中

 

var dp:ArrayCollection = new ArrayCollection;
dp.addItem({label:info.name, file:info.file});
fileList.dataProvider = dp;

当点击List子项时就把文件储存到你喜欢的地方

file= new FileReference();
file.save(event.itemRenderer.data.file, event.itemRenderer.data.label);

 

  不过最近在论坛上看到一篇文章,也是关于rtmfp,已经可以不通过Stratus的服务进行ptp,不过是通过比较新的一个类NetGroup,不过我觉得现在adobe这些ptp技术还不是很成熟,就像上面的方法做出来的程序,共享太大的文件还是会崩溃,不过现在还是有必要了解一下吧,等它壮大起来,再深入去研究吧!

posted on 2010-11-13 13:51  cenfee  阅读(681)  评论(0)    收藏  举报