البرمجة

تطبيق دردشة غير مركزي: استخدام XMPP مقابل WebSockets

تقوم بتصميم تطبيق للدردشة حيث لا يوجد خادم مركزي أو قاعدة بيانات تتعامل مع جميع الرسائل الواردة والصادرة. سيكون النظام متميزًا بالتفcentralizedت.

في ملخص لمشروعك ومتطلباته:

  • سيتواصل كل مستخدم عبر هاتف أندرويد مع “عقدة” معينة تُخصص له. ستتواصل هذه العقدة بشكل مباشر مع العقدة التي تنتمي إليها المستخدم الذي يرغب في إرسال رسالة له.

  • سيتم توصيل رسائل الدردشة بين “العقد” عبر بروتوكول “p2p” مشتق من أحد المكتبات المستخدمة لـ “Ethereum”.

  • ستحتوي الدردشة على عدد محدود من المستخدمين، ما بين 1500 إلى 2500 مستخدم.

  • سيتم ربط العقد بالمستخدمين عبر جدول التجزئة الموزع (DHT) وليس هناك مشكلة في ذلك.

  • ترغب في الاعتماد على خدمة Google Cloud Messaging (GCM) قدر الإمكان.

  • سيتم كتابة الخادم بالكامل بلغة Node.js. لقد قرأت بشكل مكثف حول بروتوكول XMPP، وSocket.IO و WebSockets ولكنني غير قادر على التوصل إلى استنتاج حول ما يجب استخدامه. مع الأخذ في الاعتبار أن الكود الذي أكتبه سيتم نشره عبر عدة “عقد” أي خوادم.

  • وبالطبع، سيحتوي التطبيق على خادم يعمل في الخلفية وسيحتاج إلى عرض إشعارات للرسائل الجديدة عندما يكون التطبيق في الخلفية أو لا يعمل على الإطلاق.

  • عامل النصب السريع هو الأقل أهمية بالنسبة لي. أنا فقط أبحث عن المنتج الأكثر قوة وقابلية للتخصيص.

  • أود الالتزام بـ Node.js للخادم.

هل الميزة الأساسية لبروتوكول XMPP على WebSockets هي أن العديد من الميزات اللازمة للدردشة متوفرة مباشرةً؟ أم أن هناك المزيد من ذلك؟

لدي قائمة من المكتبات التي تم الحصول عليها من أسئلة Stack Overflow المختلفة وقد شاهدت أمثلة لتنفيذ XMPP و WebSockets.

زيادة في التأخير لمدة 1-2 ثانية ليست مشكلة في حالتي، ولكن الحفاظ على عمر البطارية أمر مهم.

هذا الرابط يقترح أن استهلاك البطارية مع WebSockets ليس مشكلة.

لمعرفة المزيد، يمكنك زيارة الرابط التالي: اضغط هنا

المزيد من المعلومات

المشروع الذي تقوم بتصميمه يهدف إلى إنشاء تطبيق دردشة متميز وغير مركزي يعتمد على تبادل الرسائل بين الأجهزة المتصلة مباشرة دون الحاجة إلى خادم مركزي. هذا يعني أن المستخدمين سيتمكنون من التواصل مع بعضهم البعض مباشرةً عبر شبكة الإنترنت دون الاعتماد على خادم وسيط.

تم تحديد بعض المعلومات الرئيسية والمتطلبات للمشروع:

  • الاتصال سيتم عبر تطبيق أندرويد يستخدم كل مستخدم عقدة محددة تخصص له.
  • ستتم عملية توجيه الرسائل بين العقد عبر بروتوكول النقطة للنقطة (P2P)، مستندين إلى تكنولوجيا Ethereum.
  • العدد الإجمالي للمستخدمين سيكون في نطاق محدد ما بين 1500 إلى 2500 مستخدم.
  • سيتم ربط العقد بالمستخدمين باستخدام جدول تجزئة موزع (DHT)، وهو عملية يبدو أنها ليست مشكلة.
  • الهدف هو تقليل الاعتماد على خدمة Google Cloud Messaging (GCM) إلى أدنى حد ممكن.
  • سيتم كتابة الخادم بالكامل باستخدام لغة Node.js.
  • يجب أن يكون التطبيق قادرًا على استقبال الرسائل وعرض الإشعارات حتى عندما يكون في الخلفية أو غير مشغل على الإطلاق.
  • الأداء والتخصيص هما الأمور الأكثر أهمية، حيث يريد المطور الحصول على منتج قوي وقابل للتخصيص بشكل كامل.
  • وأخيرًا، يفضل استخدام لغة Node.js لكتابة الخادم.

ومن خلال استعراض الروابط المرجعية التي قدمتها، تبين أن استهلاك البطارية لا يشكل مشكلة كبيرة مع استخدام WebSockets.

علاوة على ذلك، يمكن أن تكون الفوائد الأساسية لاستخدام XMPP على WebSockets هي:

  1. الميزات المدمجة: XMPP يوفر العديد من الميزات الضرورية للدردشة بما في ذلك إدارة الحسابات، والرسائل المتراكمة، والدعم للمحادثات الجماعية.

  2. الموثوقية والاستقرار: XMPP مصمم للتعامل مع شبكات الدردشة الكبيرة ويوفر أدوات لإدارة الاتصالات بشكل فعال ومستقر.

  3. التوافق مع البرمجيات القائمة على المعايير: XMPP هو بروتوكول مفتوح المصدر ويتوافق مع العديد من البرمجيات والمكتبات المتاحة في السوق، مما يجعل التكامل مع تطبيقات أخرى أمرًا ميسرًا.

مع مراعاة هذه المعلومات، يمكنك اتخاذ قرار مدروس بشأن التقنيات التي تفضل استخدامها في تطوير تطبيق الدردشة الخاص بك.

زر الذهاب إلى الأعلى