2.5 KiB
2.5 KiB
변경 이력
2025-11-15
🐛 버그 수정: 실시간 접속자 수 문제 해결
문제:
- 여러 클라이언트가 연결되어도 "실시간 접속자 수"가 1에서 증가하지 않음
원인:
- WebSocket Hibernation API 사용 시,
this.sessionsMap이 hibernation 후 초기화됨 this.sessions.size는 정확한 접속자 수를 반영하지 못함
해결:
this.ctx.getWebSockets().length를 사용하여 실제 연결된 WebSocket 개수 확인
변경된 파일:
src/lib/counter-do.ts-broadcast()메서드 수정
커밋:
fix: 실시간 접속자 수가 정확하게 표시되도록 수정
- this.sessions.size 대신 this.ctx.getWebSockets().length 사용
- WebSocket Hibernation API와 호환되는 방식으로 변경
2025-11-14
✨ 초기 프로젝트 생성
구현 사항:
- ✅ SvelteKit 5 + Cloudflare Workers 프로젝트 설정
- ✅ Durable Objects 구현 (WebSocket Hibernation API)
- ✅ 실시간 카운터 UI (Tailwind CSS)
- ✅ WebSocket 양방향 통신
- ✅ 영구 저장소 연동 (Durable Objects Storage)
- ✅ Post-build 스크립트로 Worker 자동 패치
- ✅ 문서화 (README, QUICKSTART, DEPLOYMENT, PROJECT_STRUCTURE)
주요 파일:
src/lib/counter-do.ts- Durable Object 클래스src/routes/api/counter/+server.ts- WebSocket API 엔드포인트src/routes/+page.svelte- 클라이언트 UIscripts/patch-worker.js- Worker 패치 스크립트wrangler.jsonc- Cloudflare Workers 설정
기능:
- 실시간 카운터 증가/리셋
- 실시간 접속자 수 표시
- 마지막 업데이트 시간 표시
- WebSocket 연결/연결 해제
- 모든 클라이언트 간 실시간 동기화
향후 계획
🚀 기능 추가 예정
- 여러 카운터 룸 (URL 파라미터 기반)
- 사용자 인증 (Cloudflare Access)
- 카운트 히스토리 (D1 SQLite 통합)
- 실시간 채팅 기능
- 관리자 대시보드
- 통계 및 분석
- 커스텀 테마
- 모바일 앱 (PWA)
🔧 개선 예정
- 자동 재연결 로직 강화
- 오프라인 모드 지원
- 성능 최적화
- 에러 핸들링 개선
- 테스트 코드 추가
- CI/CD 파이프라인 구축
기여 가이드
변경사항을 기록할 때:
- 날짜별로 구분
- 카테고리 사용: 🐛 버그수정, ✨ 새기능, 🔧 개선, 📚 문서
- 변경 사유와 방법을 명확히 기술
- 관련 파일 목록 포함
- 커밋 메시지 예시 추가