웹소켓(WebSocket) 시작하기 (강의/번역)

Source

  • Evernote/Technote scraps/아이젝트 랩 make yourself in a web 웹소켓(WebSocket) 시작하기(강의,번역).md

Summary

이 문서는 HTML5 웹소켓을 활용한 실시간 양방향 통신의 기본 개념과 간단한 채팅 애플리케이션 구현 튜토리얼을 다룹니다. 기존 AJAX 기반의 롱 폴링(Long Polling) 방식이 가진 자원 낭비 및 연결 유지의 한계를 지적하며, 서버에서 클라이언트로 데이터를 푸시(Push)할 수 있는 웹소켓의 장점을 설명합니다. PHP 기반 웹소켓 서버(phpwebsockets)를 로컬 환경(XAMPP)에서 구동하는 방법과, 클라이언트 측에서 WebSocket 객체를 생성하여 연결(open), 메시지 수신(message), 연결 종료(close) 이벤트를 처리하는 JavaScript 코드 예시를 단계별로 제시합니다.

Key Points

  • 웹소켓은 TCP 소켓을 기반으로 한 양방향 푸시 기술로, AJAX 롱 폴링의 비효율성(불필요한 요청, 타임아웃 리커넥션)을 해결합니다.
  • 서버 구현은 PHP 기반의 ‘phpwebsockets’ 라이브러리를 예시로 사용하며, 호스트와 포트 설정을 통해 로컬 서버를 구동합니다.
  • 클라이언트는 HTML5 WebSocket API를 사용하여 ‘ws://’ 프로토콜로 서버에 연결합니다.
  • 주요 이벤트 핸들러는 onopen(연결 성공), onmessage(데이터 수신), onclose(연결 종료)이며, 이를 통해 실시간 채팅 로그 업데이트 및 연결 상태 관리를 구현합니다.