اتصال عميل الخادم بناءً على بروتوكول Jack.IO
جانب العميل * : | جانب الخادم: |
---|---|
HTML وCSS وJS (بما في ذلك إطار عمل JackIO) | أطر عمل بايثون: Flask، Flask JackIO |
* عناصر الواجهة الأمامية للوحة Tic Tac Toe مستوحاة من مشروع Web Dev المبسط Tic Tac Toe - وظيفة جانب واحد للاعبين
في لعبة Tic-Tac-Toe متعددة اللاعبين عبر الإنترنت ، يتم توفير معالجة الحركات والتعامل مع اتصال اللاعبين ودردشة اللاعبين وإدارة غرف الألعاب بواسطة الخادم (في هذه الحالة بمساعدة أطر عمل Flask وFlask JackIO). وفقًا لقواعد تيك تاك تو، لا يوجد سوى لاعبين اثنين في لعبة واحدة. هذا يعني أنه يجب على الخادم التحقق من وجود غرفة الألعاب وما إذا كان هناك لاعبان بالفعل قبل توصيل لاعب جديد.
الخطوة 1 - الاتصال
الخطوة 2 – يتم إعلام اللاعب
الخطوة 3 - ابدأ اللعبة
app.py
الملف الذي تبدأ فيه كل المتعة... إليك تكوين أطر عمل Flask وFlask Jack IO. بمجرد التهيئة، يتم تزيين مسارات Flask بـ @app.route()
ويتم تزيين معالجات Flask SwitchIO بـ @socketio.event
. في أسفل الملف، يوجد socketio.run(app, debug=True)
الذي سيقوم بتشغيل الخادم. "تقوم وظيفة socketio.run()
بتغليف بدء تشغيل خادم الويب وتحل محل بدء تشغيل خادم تطوير Flask القياسي app.run()
." قارورة المقبسIO
oophelpers.py
هناك نمذجة لكائنات Player()
و GameRoom()
. في حد ذاتها، تحدد الفئات السلوك والصفات المطلوبة.
templates/
في الأساس، يعتبر templates/index.html
مجرد صفحة HTML تصف محتوى الصفحة - لعبة اللوحة ومنطقة السجلات. يوجد في أعلى الصفحة "عرض الترحيبات" كعرض مشروط من شأنه تغيير الحالة: display: show
-> display: none
عندما يصدر حدث الخادم توفر الغرفة.
static/styles/
هذا هو المكان الذي يتم فيه استخدام ملفات CSS لوصف جماليات الصفحة.
static/scripts/
يوجد في الملف main.js
البرامج النصية التي تجعل التفاعل مع تطبيق الويب ممكنًا. يبدأ الملف بـ " VARIABLE DECLARATIONS " في الأعلى، وبعد ذلك في وظيفة addEventListener
المجهولة الخاصة بـ joinButton
يتم التحقق من وظيفة roomAvailability()
عن طريق وظائف async
await
. بمجرد تأكيد توفر الغرفة، يتم استدعاء userConnectedHandlers()
. يتم توفير وظيفة الدردشة واللعبة عبر EventListener المرفق بأزرار sendButton و startGameButton و restartButton .
requirements.txt
يصف هذا الملف ببساطة حزم التبعيات لتطبيق الويب هذا.
طريقة واحدة لتشغيل هذا التطبيق:
python -m venv [directory]
pip install -r requirements.txt
python app.py
أو flask run
وقم بزيارة http://localhost:5000
في علامتي تبويب منفصلتين للمتصفح. python app.py
أو
flask run
قم ببناء صورة من ملف Dockerfile
docker build -t < img_name > .
docker build -t flask-tictactoe .
قم بتشغيل حاوية في الخلفية باستخدام منفذ (منافذ) الحاوية ونشرها على المضيف
docker run -d -p < host_port > : < container_port > < image_name >
docker run -d -p 80:5000 flask-tictactoe
الوصول إلى الحاوية في المتصفح باستخدام: http://localhost
أو http://127.0.0.1