2012-06-18 3 views
2

Go 서버에 cross origin websocket 요청을해야하는 비교적 간단한 PhoneGap 응용 프로그램 (iOS)을 개발 중입니다. 네트워크 활동 전에 응용 프로그램에 $.support.cors = true; $.mobile.allowCrossDomainPages = true;을 설정했습니다. 서버는 테스트/진단 목적으로 간단한 HTML/JavaScript 페이지를 제공하며 모든 것이 잘 작동합니다. 웹 소켓 연결이 작동하고, 서버가 올바른 데이터를 전달하며, 모두 멋쟁이입니다.Golang과 교차 원산지 웹 소켓

iOS 시뮬레이터에서 실행되는 PhoneGapplication에서는 그렇지 않습니다. 시뮬레이터에서 Safari는 실제로 테스트/진단 페이지에 도달 할 수 있습니다. 그러나 PhoneGapplication 시간이 초과되었습니다.

더 많은 조사를하고 있지만 이것이 간단한 서버 구성 문제이며 Go 및/또는 축복받은 웹 소켓 패키지에 대한 지식이있는 사람이 내 조사와 동시에 여기에서 요청할 것이라고 생각합니다.

답변

0

PhoneGAP 응용 프로그램에 교차 도메인 관련 문제가 없습니다 (이 정책은 클라이언트 측에 적용되며 서버 헤더 만 표시).

PhoneGAP은 기본적으로 websocket 핸드 셰이크를 지원하지 않으므로 문제가있는 것 같습니다. PhoneGAP/iOS에 도입 한 오픈 소스 프로젝트는 this one (내가 iOS 개발자가 아니기 때문에 테스트되지 않음)입니다.

2

CORS는 WebSocket에 적용되지 않습니다. WebSocket에는 "origin"헤더가 있습니다.이 헤더는 WS 연결을 여는 JS가 포함 된 HTML의 출처로 채워야합니다. 브라우저가 아닌 클라이언트는 헤더를 채울 수도 있고하지 않을 수도 있습니다 (어쨌든 좋아하는 것으로 채울 수 있습니다). 그런 다음 WS 서버는 연결을 수락할지 여부를 결정할 수 있습니다.

추가 정보 : HTML이 로컬 파일 시스템에서 오는 경우 PhoneGap에서 사용되는 WebView가 원본 헤더를 설정하는지 여부는 잘 모르겠습니다. 나는 도청을 도청하려고하고 모양을 가질 것이다.