【发布时间】:2010-12-04 17:12:48
【问题描述】:
我正在使用 Adobe Stratus(现在更名为 Cirrus)来构建一个 p2p 应用程序。在应用程序内部,我使用了 NetStream.onPeerConnect 回调函数,并期望每次连接对等点时都会触发它。但是,我的朋友 A 总是失败,而奇怪的是,朋友 B 设法毫无问题地调用了该函数。
我想知道这个问题的原因是什么?
下面是代码片段的样子。
首先,创建一个NetConnection。
netConnection = new NetConnection();
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnectionHandler);
netConnection.connect(SERVER_ADDRESS+DEVELOPER_KEY);
其次,在NetConnection成功连接后创建NetStream。
private function netConnectionHandler(event:NetStatusEvent):void{
switch (event.info.code){
case "NetConnection.Connect.Success":
sendStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
sendStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler);
var sendObj:Object = new Object();
sendObj.onPeerConnect = function(subscriber:NetStream) : Boolean {
trace("[onPeerConnect] far id: " + subscriber.farID);
return true;
}
sendStream.client = sendObj;
sendStream.publish("file");
......
第三,这是我在两个对等点之间建立连接的方法
receivedStream = new NetStream(netConnection, farId);
receivedStream.client = this;
receivedStream.addEventListener(NetStatusEvent.NET_STATUS, incomingStreamHandler);
receivedStream.play("file");
请帮我解惑。谢谢!
【问题讨论】:
标签: apache-flex p2p stratus