我一直在使用 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(即在客户端发布并在服务器上播放)。但要做到这一点,服务器需要知道客户端上的nc.nearID。
是否可以在不强制用户手动将其从客户端复制到服务器的情况下获取该 ID?或者,有没有更简单的方法让客户端与我错过的服务器对话?