این پروژه یک بازی سنگ، کاغذ، قیچی آنلاین با استفاده از C++ برای سرور، Node.js برای پراکسی و HTML/JS برای کلاینت وب طراحی شده است. ارتباط بین کلاینت و سرور از طریق WebSocket و سوکت نویسی TCP انجام میشود. همچنین با استفاده از Docker Compose، تمامی سرویسها بهصورت مجزا و یکپارچه قابل اجرا هستند.
project-root/
├── docker-compose.yml
├── server/ # سرور C++ (سوکت نویسی TCP)
│ ├── Dockerfile
│ └── main.cpp
├── proxy/ # پراکسی Node.js (WebSocket Server)
│ ├── Dockerfile
│ ├── package.json
│ └── server.js
└── client/ # کلاینت فرانتاند (HTML/JavaScript)
├── Dockerfile
├── index.html
└── app.js
- 🔵 سرور (
server/main.cpp) → دریافت درخواست بازی از کلاینت و پردازش نتیجه به کمک سوکت نویسی TCP - 🟢 پراکسی (
proxy/server.js) → پل ارتباطی بین کلاینتهای وب (WebSocket) و سرور C++ - 🟡 کلاینت (
client/index.html & app.js) → ایجاد رابط کاربری تعاملی برای بازی
اگر Docker نصب نیست، از دستور زیر در Linux استفاده کنید:
sudo apt update && sudo apt install docker docker-compose -yدر Windows و Mac، میتوانید از Docker Desktop استفاده کنید.
در دایرکتوری اصلی، دستور زیر را اجرا کنید:
docker-compose up --buildاین دستور باعث راهاندازی تمامی سرویسها میشود.
پس از راهاندازی، میتوانید از مرورگر به آدرس زیر متصل شوید:
http://localhostاز طریق دکمههای سنگ، کاغذ و قیچی میتوانید بازی کنید.
- کلاینت فرانتاند از طریق WebSocket به پراکسی Node.js متصل میشود.
- پراکسی Node.js درخواستها را به سرور C++ ارسال میکند.
- سرور C++ درخواست را پردازش کرده و نتیجه را برمیگرداند.
✔️ ذخیره نتایج بازی در پایگاه داده
✔️ ارتباط امن با استفاده از SSL/TLS
✔️ گرافیک بهتر در نسخه فرانتاند
✔️ حالت چند نفره برای رقابت آنلاین
این پروژه تحت MIT License منتشر شده و برای استفاده و توسعه آزاد است.
🔗 توسعهدهنده: movtigroup
✉️ ارتباط: GitHub Repository