화상채팅
WebRTC → 스트리밍 용도
WebSocket → 채팅
WebRtc : 영상이 아닌 Data를 전송할 수 있는 DataChannel을 지원ㄴ
- Signaling 서버 구축
Java Spring에서 WebSocket을 사용하여 신호 처리를 담당하는 Signaling 서버를 구축할 수 있습니다. 이를 위해
spring-boot-starter-websocket 의존성을 추가하고, WebSocket 엔드포인트와 메시지 핸들러를 구성합니다.
- 클라이언트 애플리케이션 개발
웹 브라우저에서 실행되는 클라이언트 애플리케이션을 개발할 때는 JavaScript를 사용하여 WebRTC API를 사용합니다. 이를 통해 브라우저 간의 P2P 연결을 설정하고, 미디어 스트림을 교환할 수 있습니다.
- STUN/TURN 서버 설정
WebRTC는 NAT 통과와 방화벽 설정을 위해 STUN 및 TURN 서버를 사용합니다. 이를 위해 자체 STUN/TURN 서버를 구축하거나, 공개적으로 사용 가능한 서버를 사용할 수 있습니다.
- Signaling: 서버와 클라이언트 간에 연결을 설정하고 조정하는 역할을 담당합니다. WebSocket을 사용하여 실시간으로 메시지를 교환하면서 이루어집니다.
- ICE (Interactive Connectivity Establishment): NAT 통과와 방화벽 설정을 위해 사용되며, STUN 및 TURN 서버를 사용해 P2P 연결을 설정합니다.
- MediaStream API: 사용자의 카메라 및 마이크에 접근하여 미디어 스트림을 얻습니다.
- PeerConnection API: 브라우저 간의 P2P 연결을 설정하고, 미디어 스트림을 교환합니다.
[Spring Boot] WebSocket과 채팅 (1)