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技术还不是很成熟,就像上面的方法做出来的程序,共享太大的文件还是会崩溃,不过现在还是有必要了解一下吧,等它壮大起来,再深入去研究吧!
浙公网安备 33010602011771号