WebRTC 1:1 영상 + 채팅 (로컬 테스트용)
간단한 로컬 P2P 데모입니다. 영상(카메라/마이크) + DataChannel 기반 채팅 + 방(room) 기능을 포함한 완전 동작 예제입니다. 시그널링은 아주 가벼운 WebSocket 서버(server.js)로 처리합니다.
주요 기능
1:1 방 입장(같은 방번호 입력 시 연결)
비디오(카메라) + 오디오 스트리밍
DataChannel 기반 텍스트 채팅
카메라/마이크가 없어도 채팅은 동작하도록 설계
Blob 메시지 수신 처리(브라우저 호환성 안정화)
로컬에서 시크릿 탭 ↔ 일반 탭으로 테스트 가능
주요 설정(포트/주소)
WebSocket 시그널링 서버: ws://localhost:8080 (script.js에서 변경 가능)
정적 파일 서버(예: Live Server): 보통 http://127.0.0.1:5500 (환경에 따라 포트가 다를 수 있음)
동일한 origin(정확히 같은 주소: 포트 포함)으로 접속해야 실험이 안정적입니다 (예: http://127.0.0.1:5500 두 탭 모두).
동작 원리(간단)
클라이언트가 join 메시지로 특정 방에 들어감 (서버는 방 관리 → 최대 2명)
두 명이 모이면 서버는 start-offer를 첫 접속자에게 보냄 → 첫 접속자가 Offer 생성
Offer → Answer → ICE 후보를 시그널링 서버를 통해 교환
RTCPeerConnection으로 미디어 스트림 교환, DataChannel로 채팅 송수신