2017-12-20 33 views
0

JS에서 Cordova로 WebSocket을 구현하려고합니다. 나는 플러그인을 사용하지 않는다. JS의 네이티브 웹 소켓을 사용한다. 기본적으로, 내 애플 리케이션은 백엔드에 연결하고, 메시지를 보낸 다음 응답을 기다린다. Chrome/Firefox에서는 정상적으로 작동하지만 내 iPad에 설치하면 프런트 엔드 웹 소켓이 결코 백엔드에 연결되지 않습니다.코드 패드가있는 웹 소켓이 ipad에서 작동하지 않습니다.

<meta http-equiv="Content-Security-Policy" content="default-src * gap: file: ws: wss: ; style-src 'self' 'unsafe-inline'; img-src 'self' data: ; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src 'self' ws: ;"> 

웹 소켓은 다음과 같이 생성 및 사용 :

ws = new WebSocket('ws://backEndIP:port/') 
ws.send('/skeleton/last') 
    ws.onmessage = function (event) { 
    resolve(event.data); 
    } 

내가 누락 될 수 있는지 모르는

그래서 난 내 메타 태그에 일부 콘텐츠 정책을 추가하려 .

편집 나는 Config.xml의 <access origin='*' allows-arbitrary-loads-for-media='true' allows-arbitrary-loads-in-web-content='true' allows-local-networking='true' /> 추가 있지만 여전히 작동하지 않습니다.

+0

내가 내 백엔드 aswell의 IP를 추가 : ''여러 플러그인을 시도했지만 여전히 작동하지 않습니다 ... 웹 소켓이 Safari에서 제대로 작동하고 있으므로 테스트를 거쳤습니다. 나는 정말로 거기에서 길을 잃는다 –

+0

아마 방화벽을 무능하게한다? 사용 된 포트가 열려 있는지 확인하십시오. 장치를 연결할 수 있는지 테스트하려면 서버를 ping하십시오. –

+0

인터넷 브라우저에서 응용 프로그램을 미리 볼 때 웹 소켓이 작동 중이므로 서버가 정상적으로 작동합니다. 그래서 나는 항구가 너무 열려 있다고 확신합니다. iPad에 방화벽이 없습니다 (지금 확인) –

답변

0

config.xml의 코드바 허용 목록에 backEndIP을 추가해야한다고 생각합니다. 여기

참조 문서 :는 WS는 :, 나의 메타 태그는 이제 다음과 같습니다 후 https://cordova.apache.org/docs/en/latest/guide/appdev/whitelist/

+0

추가되었지만 여전히 작동하지 않습니다. –

+0

iPad에서 서버로 이동하여 테스트 웹 페이지를 서버에 올려 놓고 액세스 할 수 있는지 확인하십시오. 장치에서 iPad가 실제로 네트워크상의 장치를 볼 수 있는지 확인합니다. –