2014-11-20 11 views
3

연결된 클라이언트에 세부 정보를 푸시하는 Socket.IO 서버를 만들었습니다. 브라우저에서 HTTP를 통해 모든 것이 웹 소켓을 사용하여 의도 한대로 작동하지만 서비스를 사용하는 클라이언트 유형 중 하나는 엄격하게 플래시입니다 (소켓 폴백, 바로 스트레이트 업 플래시). 우리는 AS3 Web Socket Client 라이브러리를 사용하고 있습니다.Socket.IO/Node.js에서 정책 파일을 제공하는 방법

플래시 클라이언트 (다른 ​​팀에서 제작)가 서버에 연결하려고하면 보안 샌드 박스 위반이 발생합니다. 나는 이것이 Socket.IO 서버에서 제공하는 정책 파일과 관련이 있다는 것을 알고 있지만 정확히 은 어떻게 되나요?이 파일을 처리하는 방법은입니다. telnet 127.0.0.1 10843 또는 telnet 127.0.0.1 843에 응답이 없습니다. 지난 회 프로젝트에서 텔넷을 통해 정책 파일 서버에 응답 할 수있었습니다. 이것은 그것이 제공되고 있는지 확인하는 데 도움이 될 것입니다. 3000

  • 브라우저 클라이언트가 연결할 수 있습니다

    • 푸시 서비스가 로컬 호스트에서 실행 :

      나는 여기에 내가 가진 무엇 기본 포트는 10843 것을 이해하고, 또한 843

      설정을 시도했다 채널에 아무런 문제없이 참여하십시오

    • 루트 디렉토리에 crossdomain.xml 파일이 있습니다 (필요한지 확실하지 않음)

    내가 가지고있는 정책 파일에 관한 다음과 같은 설정 :

    // Socket Setup 
    io.set('transports', ['websocket','flashsocket']); 
    io.set('flashPolicyServer', true); 
    io.set('flash policy port', 843); 
    

    옆으로 (아마도), (아직 시작하지만) 나는 또한 서비스를 시작하는 오류를 받고 있어요 이러한 설정 :

    Option flashPolicyServer is not valid. Please refer to the README. 
    Option flash policy port is not valid. Please refer to the README. 
    

    나는 분실했습니다. 바라기를 복제본이 아닙니다. 나는 높고 낮은 것을 수색하고 나가 무언가를 놓치고 있다는 것을 믿는다. 어떤 추천?

  • +0

    가 [FlashSocket.io] (https://github.com/simb/FlashSocket.IO)를보십시오. 나는 그것을 사용하지 않았지만 1.0이 출시 된 이후로 플래시가 지원되지 않기 때문에 당신이 필요로하는 것처럼 보인다. 이를 반영하여 답변을 업데이트했습니다. – enolam

    답변

    0

    socket.io documentation에 따르면 flash policy server은 플래시 소켓 전송을 사용하는 경우 기본값이 true입니다. 즉, flashPolicyServer (flash policy server이어야 함) 옵션은 필요하지 않습니다. 다음과 같이 전송을 설정하기 전에 포트 설정을 시도하십시오.

    io.set('flash policy port', 843); 
    io.set('transports', [ 'websocket', 'flashsocket' ]) 
    

    이 플래시 소켓 서버가 시작될 때, 오히려 사망 한 다음 새 포트를 다시 시작하기 시작,보다, 해당 포트로 시작되도록합니다. 또한 843은 루트 포트이므로 해당 포트를 사용할 권한이 있는지 확인하십시오.

    편집 마치 socket.io가 플래시 지원을 중단 한 것처럼 보입니다. 그들의 github에있는 문서는 0.9.0입니다. 어느 것이 혼란 스럽습니까? 시도하지는 않았지만 유용 할 수있는 대안이 있습니다. FlashSocket.io은 귀하의 필요를 용이하게합니다.

    +0

    이러한 모든 제안과 행운을 시도했습니다. 관리자로서 cmd를 실행하여 노드 서비스를 시작하고 제안한대로 줄을 재정렬합니다 (또한 포트 843을 제거하여 10843로 기본 설정을 시도 함). 아직도 운이 없다. NPM 패키지가 없습니까? '플래시 정책 포트'옵션을 사용하는 경우에도 '옵션 플래시 정책 포트가 유효하지 않습니다.'오류가 계속 발생했습니다. README를 참조하십시오. – trnelson

    +0

    1.0으로 변경된 사항을 알고 있지만 플래시 정책 서버를 변경 한 경우에는 문서화되지 않았습니다. – enolam

    +0

    흠, modules 폴더의 package.json 파일마다 1.1.0 버전이 있습니다. 정책 파일이 작동하려면 추가 패키지가 필요하지 않은 것 같습니다. 나는 그 이해를 바로 잡을 수 있는가? – trnelson

    2

    Socket.IO 개발자가 일부 전송을 제거하기로 결정한 것으로 보입니다. 따라서 부터는 Flash 전송 지원이 없습니다. 새로운 문서에는 플래시 전송 존재에 대한 언급이 전혀 없기 때문에 약간 혼란 스럽습니다.

    In Socket.IO 0.9 012.및 WebSocketMainInsecure.swf 파일을 socket.io 폴더의 어딘가에 찾을 수 있습니다. 1.*에는 .swf 확장자가있는 파일이 없습니다. 당신은 플래시 지원이 필요하면

    그래서 당신은이 명령으로 Socket.IO 0.9을 설치해야합니다

    npm install [email protected] 
    
    +0

    그래서 이해가 잘 모르겠다. 그들은 플래시 지원을 전면적으로 철회했습니다. 플래시 클라이언트를 전혀 지원하지 않으니까? – trnelson

    +1

    @trnelson 예, 공식적인 확인은 없지만 Socket.IO 1을 탐색합니다. * 소스 코드는 이것이 사실임을 나타냅니다. 그러나 플래시 전송을 지원하는 0.9를 설치할 수 있습니다. – Curious

    +0

    문제를 자세히 설명해 드려 죄송 합니다만 정책 파일 제공을 처리 할 수 ​​있다면 Socket.IO에서 Flash를 계속 사용할 수 있습니까? 나는 정확한 세부 사항에 너무 익숙하지 않다, 그러나 이것이 사실일지도 모른다 보인다. 어떤 아이디어? – trnelson