Một game Tic-Tac-Toe multiplayer realtime được xây dựng với React, Socket.IO và Node.js.
- 🎯 Game Tic-Tac-Toe multiplayer realtime
- 🏠 Tạo và tham gia phòng chơi
- 🔄 Kết nối realtime với Socket.IO
- 📱 Responsive design
- ⚡ Performance tối ưu
- 🛡️ Rate limiting và validation
- 📊 Monitoring và health check
- Node.js >= 16
- npm hoặc yarn
git clone https://github.com/ducduy2424/TIC-TAC-TOE-REALTIME.git
cd tic-tac-toe-realtimeServer:
cd server
npm installClient:
cd client
npm installServer (Terminal 1):
cd server
npm startClient (Terminal 2):
cd client
npm run dev- Client: http://localhost:5173
- Server Health Check: http://localhost:3000
- Server Stats: http://localhost:3000/stats
tic-tac-toe-realtime/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/
│ │ │ ├── app.jsx
│ │ │ └── TicTacToeMultiplayer.jsx
│ │ ├── main.jsx
│ │ └── index.css
│ ├── index.html
│ ├── package.json
│ └── vite.config.js
├── server/ # Node.js backend
│ ├── index.js
│ └── package.json
└── README.md
- ✅ Socket connection management với reconnection
- ✅ Error handling và loading states
- ✅ Input validation
- ✅ Responsive design
- ✅ Performance optimization với useCallback
- ✅ Better UX với visual feedback
- ✅ Rate limiting (50 requests/minute)
- ✅ Input validation
- ✅ Error handling
- ✅ Room cleanup (30 phút)
- ✅ Memory management
- ✅ Health check endpoints
- ✅ Logging system
- ✅ Code splitting
- ✅ Minification
- ✅ Bundle optimization
- ✅ Dependency optimization
GET / - Server status
GET /stats - Game statistics
- Tạo phòng: Click "Tạo phòng" để tạo phòng mới
- Tham gia phòng: Nhập Room ID và click "Tham gia"
- Chơi game: Click vào ô trống để đánh X hoặc O
- Kết quả: Game kết thúc khi có người thắng hoặc hòa
VITE_SERVER_URL=http://localhost:3000PORT=3000curl http://localhost:3000/curl http://localhost:3000/statscd client
npm run buildcd server
npm start- Bundle Size: ~200KB (gzipped)
- Time to Interactive: < 2s
- Socket Reconnection: Automatic
- Memory Usage: Optimized với cleanup
- Kiểm tra server có đang chạy không
- Kiểm tra firewall settings
- Kiểm tra VITE_SERVER_URL trong .env
- Refresh trang nếu game bị lag
- Kiểm tra kết nối internet
- Đảm bảo chỉ có 2 người chơi trong 1 phòng
- Fork repository
- Tạo feature branch
- Commit changes
- Push to branch
- Tạo Pull Request
MIT License - xem file LICENSE để biết thêm chi tiết.