클라이언트-서버간 연결 방식을 정한다.
우선적으로 WebSocket연결을 사용하도록 하지만, 사용할 수 없는 경우에는 HTTP-Streaming or HTTP long polling 형식으로 대체한다.
브라우저의 한 도메인에서는 하나의 연결만 가능하다.
const client = new SockJs(url, protocols, options)
최초에 설정한 url로 GET 요청을 통해 필요한 정보를 얻는다.
GET/info 요청을 보내서 서버가 응답한 메시지를 토대로 앞으로 통신에 사용할 프로토콜을 결정한다.
우선순위는 다음과 같다.
Sock.js
를 이용한 연결의 요청형식은 다음과 같다.
http://host:port/myApplication/myEndpoint/{server-id}/{session-id}/{transport}
server-id
: 클러스터에서 요청을 라우팅하는데 사용session-id
: 연결을 구분하기 위한 idtransport
: 전송 타입Sock.js
는 서버가 주기적으로 Heartbeat message를 전송하며, 이를 이용하여 연결이 끊겼다고 판단하지 않도록 한다.