【发布时间】:2010-04-26 11:43:35
【问题描述】:
我一直在使用 Adobe Stratus 服务研究 Flash 10 中的 P2P 支持。我已经成功地将数据从一个用户发送到另一个用户,但我的问题是我还没有弄清楚如何以某种简单的方式(或作为对第一次调用的某种响应)将数据发回。
我目前在做什么;
-
首先建立与 Stratus 服务的连接
nc = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, ncStatusHandler); nc.connect(APPLICATION_URL + DEVELOPER_KEY); -
在“服务器”端我做:
sendStream = new NetStream(nc, NetStream.DIRECT_CONNECTIONS); sendStream.addEventListener(NetStatusEvent.NET_STATUS, sendStreamHandler); sendStream.publish("file");在“客户端”方面:
// remoteFileID.text is manually copied by the user from the server (which is nc.nearID). recvStream = new NetStream(nc, remoteFileID.text); recvStream.client = this; recvStream.addEventListener(NetStatusEvent.NET_STATUS, recvStreamHandler); recvStream.play("file"); -
然后我在客户端调用一个远程函数:
... sendStream.send("aRemoteFunction", parameterData); ... -
现在是我的问题;我想从客户端到服务器做同样的事情,通知一切顺利,或者失败了。据我了解,我必须设置一个从客户端到服务器的新 NetStream(即客户端上的 publish 和服务器上的 play)。但要做到这一点,服务器需要知道客户端上的 nc.nearID。
是否可以在不强制用户手动将其从客户端复制到服务器的情况下获取该 ID?或者,有没有更简单的方法让客户端与我错过的服务器对话?
【问题讨论】:
标签: apache-flex flash p2p netstream stratus