إصدار XMPP (Jabber) لخادم Prosody 0.11.0

تم تقديم الإصدار الأول لفرع XMPP الثابت 0.11 من خادم Prosody مع تصحيحات لأكثر من 2000 خطأ.


تغييرات كبيرة


كانت التحسينات الأكثر أهمية في وحدات MUC و pubsub.


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


أيضًا ، تم إجراء العديد من التغييرات الأخرى والتحسينات وإصلاح الأخطاء وأداء الأداء التي تم تضمينها في هذا الإصدار.


تحسينات الدردشة


كانت معظم التغييرات في هذا الإصدار حول إعادة كتابة كل التعليمات البرمجية تقريبًا لـ MUC (مؤتمر متعدد المستخدمين). تم إطلاق هذا المشروع الطموح قبل بضع سنوات من قبل مستخدم daurnimator ، الذي طور معظم الكود الجديد.


على الرغم من أن أهم التغييرات داخلية ، فقد سمح هذا للمشروع بإضافة ميزات جديدة بسهولة أكبر وتحسين قابلية تطوير خدمات MUC (يسمح هذا الإصدار من وحدة MUC للعديد من الخدمات بالعمل مع مئات الآلاف من المحادثات الشائعة ، مثل Jitsi Meet ).


التكوين المحسن


تم تحديث نموذج تكوين الخادم لتوفير تخطيط أكثر دقة وأسماء معلمات أكثر ملاءمة.
مربع حوار محادثة المحادثة.


أرشفة الرسائل


تمت إضافة الدعم لأرشفة وتحميل الرسائل المكتوبة مسبقًا في MUC (محادثة متعددة المستخدمين) باستخدام بروتوكول XEP-0313 (MAM). يسمح هذا للعميل بعرض الرسائل ، على سبيل المثال ، التي تم كتابتها في محادثة عامة عندما كان المستخدم غائبًا عبر الإنترنت.


حجز اسم المستخدم


لمنع الارتباك ، يمكن لـ Prosody الآن تطبيق حجز اسم المستخدم. يمنع هذا استخدام اسم شخص آخر عندما لا يكون المالك الحقيقي في محادثة شائعة. بشكل افتراضي ، يمكن فقط لمالكي / مسؤولي المحادثات المشتركة إعادة تعيين اسم (عند إضافة مستخدم إلى محادثة مشتركة) ، ولكن يمكن أيضًا تكوين الوحدة النمطية بحيث يمكن للمستخدمين تسجيل الأسماء المستعارة الخاصة بهم ليصبحوا مشاركين.


بروتوكول Pubsub


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


تم تقديم الدعم أيضًا للتكوين والعقد وإدارة الملكية اللازمة للتحكم المتقدم في الوصول ، وأخيرًا دعم خيارات النشر سيئة السمعة ، والتي تتيح للعملاء نشر العناصر بشكل آمن مع التحكم في الوصول المناسب.


بيب


رمز PEP القديم عبارة عن تطبيق منفصل محدود لـ pubsub قام بتطبيق كل ما يحتاجه المستخدمون في عام 2009. ومع ذلك ، على مر السنين ، كانت هناك حاجة إلى المزيد والمزيد من ميزات pubsub في PEP ، نظرًا لأهميتها الكبيرة. لذلك ، أصبح من الواضح أن PEP بحاجة إلى إضافة جميع وظائف pubsub واستخدام الكود الحالي.


بدأ فلوريان زيتز هذا العمل من خلال إنشاء وحدة نمطية جديدة "mod_pep_plus". استبدلت هذه الوحدة النمطية الآن بـ "mod_pep" الأصلي وهي بالفعل تنفيذ PEP الافتراضي.


يوفر هذا دعم OMEMO عند التواصل مع المستخدمين غير الموجودين في دفتر العناوين وفي المحادثات والعملاء الآخرين. كما يسمح للمستخدمين باستخدام PEP لتخزين الإشارات المرجعية والبيانات الأخرى.


تنسيق vCard جديد


يوفر هذا الإصدار دعمًا للإصدار الجديد في مواصفات vCard الموضحة في XEP-0292 ، والتي تتضمن دعمًا للعديد من الميزات الجديدة.


يتم تخزين التنسيق الجديد أيضًا في PEP ، مما يوفر الوصول الكامل للتحكم في الوصول (على سبيل المثال ، يمكنك اختيار ما إذا كانت بطاقة vCard الخاصة بك مفتوحة أو متاحة فقط لجهات الاتصال).


يدعم عدد قليل من العملاء (إن وجد) vCard4 حاليًا ، ولكن بروتوكول vcard-temp القديم لا يزال مدعومًا باستخدام mod_vcard_legacy ، الذي يتحول بشفافية إلى التنسيق الجديد حتى يتم تحديث العملاء.


الاستفادة المثلى من بطارية الهاتف النقال


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


يمكن للعملاء الذين يدعمون XEP-0352 ، مثل المحادثات ، إبلاغ الخادم عندما يكون التطبيق في الخلفية ، ويقوم Prosody بتحسين حركة الاتصال وفقًا لذلك.


يتم تنفيذ هذه الوظيفة في وحدة mod_csi_simple.


التغييرات الداخلية


واجهات برمجة التطبيقات غير المتزامنة


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


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


الاختبارات المؤتمتة


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


دعم epoll الأصلي


يوفر خادم الشبكة التجريبي الجديد بديلاً لـ libevent. المزايا الرئيسية هي الحجم الصغير للتنفيذ وسهولة الاستخدام ، في حين أن الميزة هي دعمها الاستثنائي في أنظمة Linux.


المصدر

Source: https://habr.com/ru/post/ar430998/


All Articles