socket.io는 engine.io 위에 구축되어 있다.
연결을 확인하는 메커니즘인 heartbeat는 이 engine.io에서 일어난다.
http 프로토콜로 handshake 과정이 일어난 후에 engine.io가 heartbeat 매커니즘으로 연결 상태를 확인한다.
key | 유형 | 설명 |
---|---|---|
sid | string | 세션 id |
upgrades | string[] | 사용할 서브 프로토콜 종류 |
pingInterval | number | 하트비트 메커니즘에 사용되는 핑 시간 간격 (ms) |
pingTimeout | number | 하트비트 메커니즘에 사용되는 핑 시간 제한 (ms) |
maxPayload | number | 청크당 최대 바이트 수 |
{
"sid": "lv_VI97HAXpY6yYWAAAC",
"upgrades": ["websocket"],
"pingIntpierval": 25000,
"pingTimeout": 20000,
"maxPayload": 1000000
}
socket.io의 재연결 검증
서버에서 연결을 끊고 다시 연결됐을 경우
클라이언트 네트워크가 끊겼다가 다시 연결 됐을 경우
engine.io에서 재연결과 관련된 모든 작업을 대신 처리해준다.
아래의 해당 옵션 정도만 설정이 필요함.
"pingIntpierval": 25000,
"pingTimeout": 20000,