2014-04-12 3 views
0

네트워크에 작동하는 flash/air 앱이 있습니다. 따라서, 내 xmlsocket에서 정책 파일을로드해야하지만 다른 포트에 배치 될 수 있습니다. 첫 번째 포트에 연결할 수없는 경우 두 번째 포트와 함께로드하는 것이 가장 중요합니다. 지금은이 코드 (공식적으로) 사용하려고 :다른 포트에서 정책 파일로드

try { 
    Security.loadPolicyFile(xmlsocket://" + _url + ":" + 843); 
} catch (error:Error) { 
    try { 
     Security.loadPolicyFile(xmlsocket://" + _url + ":" + 33333); 
    } catch (error:Error) { 
     trace("policy loading error"); 
    }  
} finally { 
    if (_connection) 
     _connection.open(); 
} 

를하지만 확실하지 않습니다이 블록은 대상 포트 843이 잠겨 때 예외를 생성하거나 더 crossdomain.xml에 특히 다른 플랫폼에서 그것을 찾을 수 없습니다 (브라우저 , AIR 데스크탑 앱, AIR 모바일 앱). 누구나 명확히 할 수 있습니까?

답변

1

loadPolicyFile 아무런 오류가 발생하지 않습니다. Flash에는 이러한 정책 파일을로드하는 순서가 내장되어 있습니다 (지금은 찾을 수 없지만 동일한 위치 (http)에서로드 한 다음 마스터 도메인에서 다른 포트로로드하는 것과 같음)

이것이 의미하는 바는 실제 요청을하기 전에로드 용으로 표시된 모든 파일을 내부적으로로드하려고한다는 것입니다. 따라서 직접 할 수 있습니다 :

Security.loadPolicyFile(xmlsocket://" + _url + ":" + 843); 
Security.loadPolicyFile(xmlsocket://" + _url + ":" + 33333); 

그리고 이러한 요청 중 하나라도 유효한 정책 파일을 반환하면 모든 것이 올바르게 작동합니다.

관련 문제