{"repo":"SeJonJ/ChatForYou","free":true,"listed":false,"github":"https://github.com/SeJonJ/ChatForYou","clone":"git clone https://github.com/SeJonJ/ChatForYou.git","description":"SpringBoot WebSocket & WebRTC Chatting","language":"Java","stars":109,"topics":["java","screensharing","spring-boot","webrtc","websocket","group-chat","kurento","datachannel","game","catchmind"],"license":null,"category":"game-templates","readme_excerpt":"ChatForYou v2 - WebRTC 화상채팅 & 게임 플랫폼 ) 📋 프로젝트 개요 ChatForYou v2는 Node.js 프론트엔드와 Spring Boot 백엔드로 구성된 실시간 화상채팅 및 게임 플랫폼입니다. WebRTC 기술을 활용한 N:M 화상채팅과 CatchMind 게임, 파일 공유 등 다양한 인터랙티브 기능을 제공합니다. 🏗️ 프로젝트 구조 🛠️ 사용 기술 Frontend - Node.js - 프론트엔드 서버 - Electron - 데스크톱 앱 (v39) - jQuery - DOM 조작 및 AJAX - Bootstrap 5 - UI 프레임워크 - WebRTC - 실시간 화상통신 Backend - Java 17 - 프로그래밍 언어 - Spring Boot - 백엔드 프레임워크 - Spring WebSocket - 실시간 통신 (STOMP) - Kurento Media Server - N:M 미디어 서버 - Redis - 분산 상태 관리 (방·라우팅·복구) - Kafka - 인스턴스 간 이벤트 전파 - MinIO - 녹화 파일 오브젝트 스토리지 Infrastructure - Docker - 컨테이너화 - Kubernetes - 오케스트레이션 (RollingUpdate, readinessProbe) - GitHub Actions - CI/CD 파이프라인 - Prometheus & Grafana - 성능 모니터링 - nginx - TLS sidecar + sticky session 라우팅 ✨ 주요 기능 🎯 기본 기능 - 채팅방 관리 : 채팅방 조회, 생성, 삭제, 수정 - 무중단 배포 복구 : K8s Rolling Update 중 방 삭제 없이 자동 재입장 (상세) - 보안 기능 : 채팅방 암호화 및 접근 제어 - 사용자 관리 : 닉네임 중복 검사 및 자동 조정 - 실시간 메시징 : DataChannel 기반 실시간 채팅 🔄 무중단 배포 복구 Kubernetes Rolling Update 중 RTC 방이 삭제되지 않고, 참가자가 자동으로 같은 방에 재입장한다. 동작 흐름 단계 동작 ------ ------ SIGTERM preStop hook → /internal/pre-shutdown (loopback) → Redis에 복구 후보 메타데이터 저장 readiness drain 503 반환 → nginx가 이 Pod를 자동 제외 WebSocket close 프론트엔드 자동 재연결 + 배포 안내 카운트다운 오버레이(3분) 표시 joinRoom() owner unhealthy + 복구 메타 유효 → REDIRECT RECOVER 반환 (기존 방 삭제 없음) HTTP Recovery POST /chat/room/{roomId}/recover → Redis claim lock → 신규 Pod로 owner 이전 → Set-Cookie 발급 재입장 새 쿠키로 신규 Pod에 WebSocket 연결 → JOIN ROOM → 영상 복원 chatforyou-server (nginx sticky) 쿠키는 HttpOnly라 JS에서 수정 불가","default_branch":null,"files":null,"tree":[],"storefront":"/r/SeJonJ","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/SeJonJ/ChatForYou/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}