/////
Search
Duplicate

채팅 서비스를 구현하게 된 배경과 websocket을 이용하셨다고 했는데 websocket이 동작하는 원리나 흐름이 궁금해요

태그
채팅
답변
물물교환 서비스이므로 물건을 교환하는 사람들끼리 어디서 만날지, 물건의 상태 또는 얼마의 추가금을 내야하는지 등 게시글에 적혀있지 않은 추가적인 사항들을 주고 받을 수 있어야 하는데 이에 채팅 서비스가 적절하다고 생각했습니다. 웹 소켓은 핸드 쉐이킹이 필요하고 http 또는 https 프로토콜과 get메서드 통해 이루어 집니다. Request 요청에는 websokcet으로 변경하기 위해 업그레이드 하기 위해 upgrade 헤더와 connection 헤더가 포함됩니다. 그 후 응답으로 Switching Protocols 이 오면이 클라이언트와 서버 간에 웹 소켓 연결이 설정됩니다. 웹 소켓 연결이 설정되면, 양방향 통신이 가능해집니다. 클라이언트나 서버는 언제든지 메시지를 보낼 수 있고, 상대방은 해당 메시지를 즉시 수신할 수 있습니다. 이러한 양방향 통신은 실시간성이 중요한 애플리케이션에서 매우 유용하게 사용됩니다. 웹 소켓은 일반적으로 TCP 연결 위에 구현되며, 핸드 쉐이킹 이후에는 TCP 연결이 유지됩니다. 이것은 데이터를 실시간으로 전송하고 수신하기 위해 새로운 TCP 연결을 맺지 않아도 된다는 장점을 가지고 있습니다. 대신에, 한 번의 핸드 쉐이킹으로 연결이 설정되고 이후에는 계속해서 데이터를 주고받을 수 있습니다. 웹 소켓은 이벤트 기반으로 동작하며, 클라이언트나 서버가 메시지를 보낼 때마다 이벤트가 발생합니다. 이벤트를 처리하는 핸들러를 등록하여 메시지를 수신하고 처리할 수 있습니다.
튜터님 답변