2010-12-02 3 views
1

저는 Adobe Stratus (현재 Cirrus로 이름이 바뀜)를 사용하여 P2P 응용 프로그램을 작성하고 있습니다. 응용 프로그램 내에서 NetStream.onPeerConnect 콜백 함수를 사용하여 피어가 연결될 때마다 트리거 될 것으로 예상했습니다. 그러나 이상하게도 친구 B는 아무 문제없이 전화를 걸 수있었습니다.NetStream.onPeerConnect가 트리거되는 것을 방해합니까?

이 문제의 원인이 무엇일까 궁금합니다.

다음은 코드 조각의 모양입니다.

우선 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"); 

가르치 려 도와주세요 사이의 연결을 구축하는 방법입니다. 감사!

답변

1

내 친구 A가 대칭 NAT 뒤에 있음이 드러났습니다. 성공적인 연결을 위해 TURN 서버를 설치하려고합니다.

관련 문제