2012-06-16 8 views
1

저는 서버 측에서 Node.JS를 사용하고 소켓을 활용하여 클라이언트에 피드하는 Flex 어플리케이션에서 작업하고 있습니다. 문제는 : Flashbuilder에서 응용 프로그램을 실행하면 응용 프로그램이 제대로 작동하고 서버에 연결하여 데이터를 클라이언트에 공급할 수 있습니다. 하지만 URL을 사용하여이 응용 프로그램에 액세스하려고하면 작동하지 않습니다.플렉스 노드 소켓 연결

급히, 작업 링크 : D : \ 데브 \ 작업 공간 \의 Myproj 빈 - 디버그 \ index.html을 \

작동하지 않는 링크 (SWF로드,하지만 데이터) 에 http : // IP -address : 3000/flexapp/index.html

보안 문제가있는 것 같습니다. 그러나 내 마음이 해결책을 제시하기를 거부함에 따라 나는 확신 할 수 없다. 도움을 주시면 감사하겠습니다. 위에서 언급 한 바와 같이 는 첫째, 내 이해, Socket.io 자체가 포트 10843에서 flashpolicyfileserver을 제공하고 아직도 내가 데 문제 :

또한 탐사 다음과 같이 나는 웹을 통해 주어진 많은 제안을 시도했다. 두 번째로, authbind를 사용하여 here을 설명했지만 여전히 내 문제를 해결할 수없는 flashpolicyserver를 실행 해 보았습니다.

+0

감사합니다. 이 쿼리를 게시하기 전에 모든 것을 보거나 검색했습니다. –

답변

0

나는 내 자신의 질문에 대답하고 있습니다. 사용하는 설치 프로그램은 Flex4.6, Socket.IO의 Node.JS, FlashSocket API

이 문제에 직면했을 때 내 응용 프로그램에 crossdomain.xml을 지정하여 올바르게 시작했습니다. 그러나 그것은 효과가 없었습니다. 그런 다음 포트 843에서 별도의 정책 서버를 사용해 보았습니다. 하지만이 모든 과정을 통해 소켓이 초기화되고 나중에 연결이 끊어지는 것을 발견했습니다. 그래서 나는이 문제를 일으키는 Flashsocket으로 끝났습니다. 나는 그것을 위해 소스 코드를 가져 와서 디버깅했다. 정책 URL이 제공된 IP + 호스트를 기반으로 생성되고 있음을 발견했습니다. 좋은 접근 방법이지만이 정책 URL을 사용자 정의 할 수있는 방법은 제공하지 않습니다. 내가 한 것은 방금 수정하여 방금 자체 policyURL을 전달할 수 있고 통과 할 때마다 FlashSocket은 그렇지 않은 방식으로 사용해야하며 이전 방식으로 policyURL을 계속 수행합니다. 그리고 효과가있었습니다. FlashSocket에

내 작은 변경 : 제안을

.... 
private var policyURL:String; 
public function FlashSocket(domain:String, protocol:String=null, proxyHost:String = null, proxyPort:int = 0, headers:String = null, policyURL:String = null) 
{ 
.... 
this.policyURL = policyURL; 
.... 
} 

protected function loadDefaultPolicyFile(wsUrl:String):void { 
      var policyUrl:String = "xmlsocket://" + URLUtil.getServerName(wsUrl) + ":843"; 
      log("policy file: " + policyUrl); 
      if(policyURL){ 
       Security.loadPolicyFile(policyURL); 
      }else} 
       Security.loadPolicyFile(policyUrl); 
      } 
     } 
+0

나는 그것이 내가하고있는 것이다라고 생각한다. 이 함수는 좀 더 제한된 위치를 가리키며, 여기서 전역 정책 파일에 대한 URL을 제공 할 수있는 방식으로 수정했습니다. 감사. –