【问题标题】:What hinders NetStream.onPeerConnect from being triggered?是什么阻碍了 NetStream.onPeerConnect 被触发?
【发布时间】:2010-12-04 17:12:48
【问题描述】:

我正在使用 Adob​​e 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


    【解决方案1】:

    原来我的朋友 A 在对称 NAT 后面。我正在考虑为我们建立一个 TURN 服务器以建立成功的连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 2017-04-09
      • 1970-01-01
      • 2023-02-25
      • 2011-05-08
      • 1970-01-01
      • 2011-10-20
      相关资源
      最近更新 更多