2013-04-01 2 views
0

나는 지난 며칠 동안 node.js와 socket.io를 가지고 놀았습니다. 모든 것이 내 로컬 컴퓨터 (웹 서버용 iss를 사용하는 windows)에서 제대로 작동하지만 원격 서버 (우분투 상자)에 업로드 할 때 보안 오류가 발생합니다.Socket.IO flashsocket 보안 샌드 박스 오류

[trace] Warning: Failed to load policy file from http://localhost:8000/crossdomain.xml 
[trace] *** Security Sandbox Violation *** 
[trace] Connection to http://localhost:8000/socket.io/1/ halted - not permitted from http://****/virtualcinema/VirtualCinema.swf 
[trace] Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://****/virtualcinema/VirtualCinema.swf cannot load data from http://localhost:8000/socket.io/1/. 

가에 erroring 년대 AS3 코드는 다음과 같습니다

정책 파일이 포트 10843에서 제대로 제공되고 나는 HTTP에서 정책 파일의 벌금을받을 수 있습니다
Security.loadPolicyFile("xmlsocket://localhost:10843"); 
socket = new FlashSocket("localhost:8000"); 

: // * * : 10843/내 브라우저에서. 포트 8000에서 정책 파일을로드하려고하는 이유는 무엇입니까?이 경고는 로컬 빌드에 나타나지 않습니다.

socket.io 코드 :

socket = io.listen(8000); 

socket.configure(function() 
{ 
    socket.set("transports", ["flashsocket"]); 
    socket.set("log level", 2); 

}); 

내가 원격 하나에 localmachine에서 테스트가 아닌 경우가 잘 해결됩니다 이유에 혼란 스러워요. 어떤 도움이 많이 주시면 감사하겠습니다 :)

crossdomain.xml은을 내가 사용하고 :

<cross-domain-policy> 
    <allow-access-from domain="*" to-ports="*"/> 
</cross-domain-policy> 
+0

문제는 그 대신하여 XMLSocket에서 정책 파일을로드하는 것입니다 : // localhost를 : 10843, 그것은 HTTP에서로드 : // localhost를 ". Socket.IO에 오신 것을 환영합니다"를 반환 8000/crossdomain.xml에 그게 내 서버가 돌아가고있는 포트입니다. – synergies

+0

빠른 질문, 라이브러리를 사용하여 as3의 socket.io 서버와 통화하고 있습니까? 아니면 As3의 소켓/xmlsockets를 사용하고 있습니까? – funseiki

답변

1

가 수정되었습니다. localhost를 가리키는 것으로부터 내 서버 externalIP로 변경했습니다.

나는 이것을 시도했지만, 불행히도 서버가 내 swf 파일을 캐시했는데, 그것이 수정되었다는 것을 몰랐다.

Security.loadPolicyFile("xmlsocket://****.com:10843"); 
socket = new FlashSocket("****.com:8000");