Parolla kelime oyunu için gerçek zamanlı WebSocket sunucusu. Bu sunucu, oyuncular arasındaki etkileşimi ve oyun mantığını yönetir.
- Gerçek zamanlı soru-cevap sistemi
- Çoklu oyuncu desteği
- JWT tabanlı kimlik doğrulama
- Oyuncu can ve puan sistemi
- Otomatik soru döngüsü
- Zaman bazlı oyun mantığı
- Node.js >= 18.0.0
- npm veya yarn
- PM2 (production için)
- Docker (opsiyonel)
- Repoyu klonlayın:
git clone https://github.com/radkod/parolla-ws.git
cd parolla-ws
- Bağımlılıkları yükleyin:
npm install
# veya
yarn install
- Örnek env dosyasını kopyalayın:
cp .env-example .env
.env
dosyasını düzenleyin:
PORT=1881
HOST=localhost
API_URL=http://parolla-backend.test/api/v1
JWT_SECRET=your_jwt_secret_key_here
- Docker imajını oluşturun:
docker build -t parolla-ws .
- Docker container'ı çalıştırın:
docker run -d \
--name parolla-ws \
-p 1881:1881 \
-e PORT=1881 \
-e HOST=0.0.0.0 \
-e API_URL=http://parolla-backend.test/api/v1 \
-e JWT_SECRET=your_jwt_secret_key_here \
parolla-ws
Docker Compose ile çalıştırmak için:
docker-compose up -d
Geliştirme sunucusunu başlatmak için:
npm run dev
# veya
yarn dev
Production ortamında çalıştırmak için:
npm start
# veya
yarn start
PM2 ile çalıştırmak için:
pm2 start src/server.js --name "parolla-ws"
Production ortamında Docker ile çalıştırmak için:
# Docker container'ı başlat
docker start parolla-ws
# Container loglarını görüntüle
docker logs -f parolla-ws
# Container'ı durdur
docker stop parolla-ws
# Container'ı yeniden başlat
docker restart parolla-ws
WebSocket sunucusuna bağlanmak için:
const ws = new WebSocket('ws://localhost:1881?token=your_jwt_token');
CONNECTED
: Oyuncunun başarıyla bağlandığını bildirirQUESTION
: Yeni soru gönderirTIME_UPDATE
: Kalan süreyi bildirirTIME_UP
: Sürenin dolduğunu bildirirWAITING_NEXT
: Sonraki soruya geçiş süresini bildirirGAME_RESTART
: Oyunun yeniden başladığını bildirirANSWER_RESULT
: Cevap sonucunu bildirirGAME_OVER
: Oyuncunun oyun dışı kaldığını bildirirERROR
: Hata durumlarını bildirir
ANSWER
: Oyuncunun cevabını gönderir
- Her oyuncu 3 can ile başlar
- Yanlış cevaplarda can kaybedilir
- Doğru cevap 10 puan kazandırır
- Her soru için 30 saniye süre verilir
- Sorular arası 5 saniye bekleme süresi vardır
Hata loglarını görüntülemek için:
# PM2 logları
pm2 logs parolla-ws
# Uygulama logları
tail -f logs/app.log
# Container logları
docker logs -f parolla-ws
# Container durumu
docker ps -a | grep parolla-ws
# Container detayları
docker inspect parolla-ws
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature
) - Değişikliklerinizi commit edin (
git commit -m 'feat: Add amazing feature'
) - Branch'inizi push edin (
git push origin feature/amazing-feature
) - Pull Request oluşturun
Bu proje MIT lisansı ile lisanslanmıştır.
Radkod Yazılım - [email protected]