socket.io 3

socket.io를 활용한 채팅 기능 구현에 대한 회고

이전 라이브 스트리밍 프로젝트에서 작성한 채팅 구현 코드를 회고하는 과정에서 문제점을 개선했습니다. 먼저 WebSocket과 Socket.io의 차이점에 대해서 다시 살펴보았습니다. WebSocket: 웹 표준 프로토콜로, RFC 6455에 정의되어 있습니다. 이는 웹 브라우저와 웹 서버 간의 표준화된 양방향 통신 프로토콜입니다. Socket.io: WebSocket을 기반으로 하지만, 실제로는 여러 프로토콜을 사용할 수 있습니다. 먼저 WebSocket을 시도하고, 그 후에 다른 전송 방법(예: 폴링)을 사용할 수 있습니다. 또한 이벤트 처리, 룸, 네임스페이스 등의 기능을 내장하고 있어 WebSocket 연결 이후 여러 부수적인 기능을 지원하는 편의성을 지니고 있습니다. 결론적으로, WebSocket..

socket.io로 간단한 채팅 페이지 구현하기

https://github.com/issuebombom/chat_page_mini Workflow 프론트에서 A 유저가 글을 보냅니다. 본인의 socket.id와 작성한 글을 'SEND' 이벤트명으로 백엔드에 emit합니다. 이 때 본인이 작성한 글은 채팅창에서 푸른 바탕을 지니며 오른쪽 정렬되어 보여집니다. 백엔드에서 'SEND' 이벤트를 받아 작성자(A)를 제외한 유저들을 대상으로 메시지와 socket.id 정보를 프론트에 전달합니다. 이 때 역시 'SEND'라는 동일한 이벤트명으로 전달합니다. 프론트에서 'SEND' 이벤트를 받은 A외 유저들은 본인의 채팅창에 A가 작성한 문구가 노란 바탕으로 나타나며 왼쪽정렬된 상태로 받아집니다. 본인이 작성한 문구 외 글들은 상단에 작성자의 socket.id가 ..

Socket.io에 대해서 알아봅시다.

Socket.io Socket.io가 무엇인지, 어떤 기능에 활용되는지 공부합니다. 시작에 앞서 알아야할 부분 TCP와 UDP TCP란? 서버와 클라이언트 간 데이터 송수신을 위해 만들어진 프로토콜 연결 지향성 프로토콜이라고도 부르는데 그 이유는 서버와 클라이언트가 양방향으로 소통함으로서 데이터 요청 및 전송에 있어 차질이 없도록 하여 데이터의 누락 또는 순서가 뒤바뀌는 일을 방지하는 것, 즉 통신의 안정성을 바탕으로 한 신뢰에 중점을 두기 때문입니다. 가령 클라이언트가 데이터를 요청했고, 서버가 보내주는 과정에서 데이터가 누락되었다면 클라이언트에서 "누락됐다."라고 알려주면 서버가 다시 보내주는 방식으로 서로 소통하므로 아무래도 데이터 전송이 잘못된 가능성이 현저히 낮아 신뢰가 높아집니다. 하지만 UD..