2012-01-31 6 views
1

WebSocket 프로토콜을 통해 서버에 연결하려고하는 간단한 Flex 응용 프로그램을 구현했습니다. Flash Builder 4.6 디버거에서 응용 프로그램을 실행하면 모든 것이 잘 동작합니다. 그래서 서버에 응용 프로그램을 설치했는데 잠시 후 오류 # 2048이 발생합니다. # 2048은 보안과 관련하여 오류가있는 것 같습니다.Flex : WebSocket에 연결할 때 # 2048 오류가 발생했습니다.

서버는이에 crossdomain.xml 제공 : 업데이트

<?xml version="1.0" encoding="UTF-8" ?> 
    <cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd"> 
    <allow-access-from domain="*" to-ports="*" /> 
    <site-control permitted-cross-domain-policies="master-only" /> 
</cross-domain-policy> 

편집 :은 그것은 내가 웹 서버 로그에서 볼 수

Security.loadPolicyFile('http://myserver:8081/crossdomain.xml'); 

를 호출하여 제공하는 사용자들은 클라이언트가로드합니다.

Flex 용 WebSocket 구현으로 AS3WebSocket을 사용하고 있습니다.

내가 웹 소켓 객체 설정 방법은 다음과 같습니다

websocket = new WebSocket(url, "*", 'dummy', 5000); 
// adding several event handler ... 
websocket.connect(); 

브라우저는

http://myserver:8081 

사용하여 서버에 연결을 URL 매개 변수는

ws://myserver:8081/data 

는 이유는 무엇입니까 보유 그것은 플래시 빌더를 사용하여 로컬로 작업하고 내 작업은 수행하지 않습니다. 응? 내가 뭘 놓치고 있니?

+0

어떤 포트가 크로스 도메인에 배치되어 있습니다. –

+0

Flex 애플리케이션에서 실행되는 첫 번째 행은 _Security.loadPolicyFile ('httpaddressofmyserver : 8081/crossdomain.xml'); _입니다. 앱에서로드됩니다. 그만큼 내 웹 서버의 로그에서 볼 수 있습니다. –

+0

여기 내 다른 게시물을 참조하십시오 http://stackoverflow.com/questions/7634266/open-swf-file-than-works-with-socket/7637329#7637329 –

답변

0

이 작업이 있습니다. 필자는 TCP를 통해 정책 파일을 제공하는 포트 843에서 소켓 정책을 위해 실행되는 특별 policy server이 필요하다는 정보를 놓쳤습니다.

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

은 "허용-크로스 도메인 정책 ="없음 "비트를 둡니다.

가. 지금은 그 시도 모든 작품 때 이 더 안전합니다.

+0

crossdomain.xml을 변경했습니다. 하지만 여전히 # 2048 오류가 발생합니다. 파일을로드합니다. 그건 확실합니다. 보안 오류의 원인을 정확히 알 수있는 방법이 있습니까? –

0

확인하시기 바랍니다 방화벽 보안 이 문제에 대한 원인 중 하나가 될 수 있습니다 [포트에 내부 및 외부 액세스]

은 아래 링크를 확인하시기 바랍니다 : -. http://flexhappycoding.blogspot.in

+0

tipp에 감사하지만 포트가 열려 있습니다. 브라우저에서 HTTP를 통해 포트에 연결할 수 있습니다. 소켓 연결만으로는 연결할 수 없으며 Flex/Flash 관련 보안 문제로 인해 시도하지 않는 것 같습니다. –

관련 문제