2017-10-17 4 views
0

socket.io 라이브러리를 통해 백엔드와 소켓 연결을 만들려고합니다.
문제는 - 긴 폴링 옵션을 해제하고 사용자 지정 경로를 설정해야합니다. 하지만 항상 하나의 옵션 만 사용하기 때문에 둘 다 설정할 수는 없습니다. 나는이 방법을 시도하는 경우
그래서, 나는 path를하고 있어요,하지만 transports :socket.io의 등록 정보 전송 및 경로 설정

this.socket = io(
    'wss://some-url.com', 
    { path: '/v1/url/to/websockets' }, 
    { transports: [ 'websocket' ] } 
); 

을 그리고 라이브러리는 서버에 의해 거부됩니다 긴 폴링 연결을 (만들려고 노력하는 I 돈)에 대한 액세스 권한이 있지만 경로가 정확합니다.
하지만 먼저 transports 속성을 순서를 변경하고 설정하기 위해 노력하고있어 경우, 라이브러리는 path 속성을 생략하고 프론트 엔드가 올바르지 않습니다
wss://some-url.com/socket.io/?EIO=3&transport=websocket
URL로 요청을 보낼 것입니다.
transport 속성이 URL을 변경한다는 사실 (즉, 쿼리 매개 변수로 설정 됨) 때문에 충돌이있는 것으로 알고 있지만 이해할 수없는 것은 - 경로와 전송 속성을 어떻게 설정할 수 있습니까? 그렇게 나쁘다.
공식 문서와 여기에서 해결책을 찾지 못했습니다.
아이디어가 있으십니까?

답변

1

내 synatx는 정확한 구문 잘못

this.socket = io(
       'wss://some-url.com', 
       { 
        path :'/v1/url/to/websockets', 
        transports: ['websocket'] 
       }); 

즉 모두 동일한 개체 경우 호출 this.socket.connect에서

+0

() 내에 있어야한다; 연결을 만들지 않습니다 – WeekendMan

+0

내가 말했듯이, this.socket.connect() 코드는 아무런 움직임도 만들지 않았고, "핸드 셰이크"요청을 보지 못했고, "onconnect"이벤트를 얻지 못했습니다. (물론) – WeekendMan

+0

위의 코드에서 클라이언트는 소켓 서버에 연결되어 있습니다. 그 후에 this.socket.connect()를 호출하는 이유는 무엇입니까 ?? Iwebsocket 전송으로 핸드 쉐이크에 관해서는 101로 응답하는 하나의 HTTP 요청 만있을 것입니다. 연결 이벤트에 대한 내 끝에서 적절하게 호출되고 있습니다. –