강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

데자와아님의 프로필 이미지
데자와아

작성한 질문수

모르면 승진 안되는 시스템 디자인

서비스 시작부터 생각하는 백만이상의 유저를 위한 시스템 디자인

websocket 연결 질문

해결된 질문

작성

·

10

0

일반적으로 websocket 연결은 클라이언트 쪽에서 먼저 하나요? 혹은 서버쪽에서 먼저 하게 되나요?

또한 연결을 끊을때도 클라이언트/서버 어느쪽에서 먼저 하게 되는지 궁금합니다!

백그라운드 상태에서도 websocket 연결은 계속 유지되고 있나요?

답변 1

2

freeaion님의 프로필 이미지
freeaion
지식공유자

서버는 port를 열어두고 listening상태에서 대기하고 있고, client가 http request를 보내 initial handshake를 시작하게 됩니다. initial handshake를 보낼 때 http header에 connection을 websocket으로 upgrade하고 싶다고 요청하게 됩니다. server가 handshake을 accept하면 websocket이 연결되게 됩니다.

 

연결을 끊는 것은 closing handshake에 의해 이루어지고, closing은 server나 client 어느쪽도 먼저 시작할 수 있습니다.

 

백그라운드 상태에서도 "persistent"한 연결이 유지됩니다. websocket이 연결되면, full-duplex, persistent TCP connection이라고 생각하시면 됩니다.

데자와아님의 프로필 이미지
데자와아

작성한 질문수

질문하기