socket.io (1.4.5)를 사용하여 websocket 연결을 설정하는 앱이 있습니다. 이 앱은 웹 URL을 통해 사용할 수 있으며 Trigger.io를 사용하여 패키지 된 Android 앱으로 사용할 수도 있습니다.하이브리드 응용 프로그램 내에서 websocket 연결을 만드는 중 오류가 발생했습니다.
Android 앱에서 내 웹 소켓 서버에 연결할 수 없습니다. 이것은 내가
WebSocket connection to 'wss://myserver.com/socket.io/?user_id=xxx&session_token=xxx&EIO=3&transport=websocket' failed: Unspecified reason
는 doOpen()
방법 내에있는 socket.io 클라이언트에 참조하는 행을받는 오류입니다.
this.ws = BrowserWebSocket ? new WebSocket(uri) : new WebSocket(uri, protocols, opts);
나는 알고있는 한 websocket 서버를 변경하지 않았습니다. 그리고 웹 사이트 자체가 잘 실행되고 websocket 서버에 연결할 수 있습니다.
Chrome Devtools를 사용하여 Trigger.io Android 앱을 검사했으며 수동으로 websocket 서버에 연결하려고하면 같은 오류가 발생합니다. 다음 코드 줄은 작동하지 않습니다.
new WebSocket("wss://myserver.com/socket.io/?user_id=xxx&session_token=xxx&EIO=3&transport=websocket")
Chrome 브라우저에서 동일한 코드 행을 실행해도 문제가 없습니다.
또한 오류 응답이 너무 빨라 보입니다. 하이브리드 응용 프로그램 내의 웹보기가 연결하려고하지 않는 것 같습니다. 응답은 websocket 서버가 실행 중인지 여부와 동일합니다. 말도 안되는 URL을 입력하면 같은 오류가 발생합니다.
new WebSocket("wss://blahblah"); //gives the same error and response immediately
트리거 앱의 Chrome 버전은 55.0.2883.91입니다.
EDIT : 앱을 실행하는 기기의 모바일 브라우저에서 websocket 연결을 테스트하여 프록시/연결 문제가 아닌지 확인했습니다. 그리고 그것은 잘 작동했습니다.
다른 서버에 연결할 수 있습니까? 안전한 연결 없이도 시도해보고 어딘가에 연결할 수 있는지 확인하십시오. – Janne
@Janne 작업을 알고있는 두 개의 다른 소켓 서버에 연결을 시도했지만 여전히 같은 오류가 발생하지 않았습니다. – JohnP
이 게시물을 확인하십시오 http://stackoverflow.com/questions/16675450/support-for-websockets-on-android – Janne