مالطريقة المناسبة لعمل تطبيق شات chat app؟

انا حتى اللحظة ما عملت على مشروع متكامل فرونت مع باك باستخدام المكاتب الحديثة الخاصة ب js
افكر بالذهاب لل vue لسهولة تعلمها وكثرة مصادرها

حالياً اعمل ع مشروع يعمل بالتمبلت العادية واريد إنشاء تطبيق محادثة chat وهو الوحيد الذي سيستخدم تقنية api spa تعرف هذه اساسيات تطبيق الشات تخيل تعمل reload كل مسج :joy:

هل الافضل استخدام ال vue بهذه الحالة ك jquery استدعاء فقط دون تهيئة سيرفر خاص بها بالفرونت ولا داعي لل Components يعني كود جداً بسيط فقط لدفع الرسائل وجلبها بشكل تلقائي
هل ستفي بالغرض

3 Likes

أكيد vue هي الافضل لانها بتعطيك مرونة وما في داعي تحدث الصفحة لكل شغلة بدك تعملها اي شي بتغيره بالصفحة بيتغير تلقائياً.

5 Likes

نصر عنده خبرة سابقة في بناء هكذا تطبيقات @sniperadmin :grin:

5 Likes

نعم ستفي بالغرض كاملا…
يمكنك فقط البدء بواجهة بسيطة وربط قاعدة البيانات وكل ذلك ممكن تعمله في component واحد بسيط

الأشياء التي سنأخذها في الاعتبار:

  • سنقوم بتعريف متغيرات سنعتمد عليها بشكل كلي:
export default {
  data() {
    return {
      messages: [], // هيتم حفظ كل الرسائل هنا
      message: "الرسالة التي ستكتب هنا",
      authUser: {} // هيتم حفظ بيانات المستخدم هنا
    };
  },

بعد اختيارك لنظام الباك اند، يتعين عليك الحصول على بيانات المستخدم اللي مسجّل دخول ولما يرسل الرسالة ترسل بيانات الرسالة الى قاعدة البيانات كما يظهر بالمثال:

message: this.message.toString(),
author: اسم المستخدم,
createdAt: new Date()

ونقول مبروك! سيصبح من السهل أن تستخدم كل هذه البيانات داخل الDOM

3 Likes

tenor (2)

4 Likes

ماشاء الله :heart_eyes::heart_eyes: أبسط طريقة لعمل شات… شكرا نصر على الإفادة و شكرا سامر على السؤال :grin:

4 Likes

شكرا نصر كنت في سفر ولم اطبق اي شيء قريبا سأطلعك على النتائج يبدو الامر جدا سهل

طبعا هذا بخصوص الfron end ماذا عن ال back end هل استخدام websocket هو الانسب وهل احد قام بتجربة django channles
امر اخر لطبيعة الحال نحن نستخدم سيرفر WSGI
لكن ما الاختلاف الذي سيكون عن ASGI
وفي حال مشروعي هل يعتبر ال websocket منفذ اخر لتوصيل الاشارات ومزامنتها في السيرفر ؟؟

و سمعت عن شيء يشبه api stream مثل الذي في تويتر جربت التعامل معه لكن هل نستطيع بناء api stream وهل فكرته مختلفة عن websocket ؟

ربما هذا السؤال يكون موجه لـ @hichem2h :blush:

3 Likes

استعمل Ajax

2 Likes

مرحبا سامر

أكيد لو تريد بناء realtime chat app الحل الأمثل هو استعمال websockets

الاختلاف سيكون أنه ال ASGI يوفر طرق إضافية للسيرفر للتعامل مع websockets و long polling لكن استعمال Django channels سيكون بنفس الطريقة لأنه الجزء الذي كان يتكفل بذلك في channels صار جزء من جانقو نفسه

لم أجرب استعمال channels من قبل (لأنني أفضل استعمال nodejs في مثل هاته الأنواع من التطبيقات) لكن أكيد ستجد الأمر سهل و كل شيئ جاهز مثلما هي عادة جانقو :grin:

4 Likes

شكراً @hichem2h
سأقوم بالتطبيق وتجربة ال channels
فعلاً رأيت الاغلبية تستخدم nodejs لتطبيقات المحادثة والشروحات عليها اكثر في هذا المجال

3 Likes

أكيد يبقى جانقو دائما أفضل لتطبيقات معقدة أكثر و كبيرة لأنه يحطلك كل شيئ جاهز خاصة و أن channels جاءت من طرق فريق جانقو نفسه يعني أكيد نفس الهدف و العقلية لكن لتطبيقات بسيطة و تستعمل sockets الأفضل استعمال socketio مع nodejs أو (بتفضيل أقل) فلاسك

العفو صديقي سامر :grin:

2 Likes