سؤال

إنني أتطلع إلى تضمين ميزتين في تطبيقي باستخدام xmpp.الأول عبارة عن دردشة بين شخصين والتي تكاد تكون كاملة (باستخدام الستروفي) والثاني عبارة عن إشعارات في الوقت الفعلي بنفس الطريقة التي تعمل بها في الفيسبوك.حاولت أن أفهم نظام pubsub في xmpp لكني لا أشعر أنه سيناسب هذه المشكلة تحديدًا.يرجى التصحيح إذا كان هناك خطأ، فقد يكون ذلك بسبب عدم فهم المفاهيم بشكل صحيح.متطلباتي هو هذا - سيكون هناك أحداث محددة مسبقًا يمكن لأي من المستخدمين إطلاق النار وعندما يفعل المرء ، يجب أن يتلقى الآخرون عبر الإنترنت إخطارًا لنفسه.علاوة على ذلك، أود أيضًا التحقق مما إذا كان المستخدم يفضل تلقي الإشعارات أم لا قبل إرسالها.ما لا أفهمه هنا هو ما إذا كان سيتم استخدام pubsub، وأين وكيف تتلاءم العقد.هل يمكنني إنشاء عقدة واحدة فقط يشترك فيها الجميع؟في هذه الحالة كيف سينشر المشتركون أحداثهم عليها دون أن يكونوا مالكي العقدة؟

الطريقة الأخرى التي أفكر فيها هي إرسال رسالة إلى jids لجميع المستخدمين واحدًا تلو الآخر مع نوع العنوان أو مع حمولة إضافية مثل <notif/> لتمييزها عن الرسائل العادية.هل هذه الطريقة جيدة مع أخذ قابلية التوسع في الاعتبار؟

هل كانت مفيدة؟

المحلول

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

تم ذكر PEP ، ولكن ليس الحل الصحيح إذا كنت ترغب في النشر للمستخدمين الذين ليسوا في قائمتك.

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

نصائح أخرى

ومع ذلك، فإن PubSub سيعمل، لكن ما تصفه يبدو أشبه MUC (دردشة متعددة المستخدمين).

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

نظرًا لأن لديك بالفعل عميلًا يعمل على المتصفح، مع Strofe، فمن المفترض أن يكون الأمر سهلاً إلى حد ما.فقط تأكد من هذا مكون MUC يعمل على الخادم الخاص بك.

ما تحاول القيام به مع مكتبة XMPPHP ، أي إرسال رسالة إلى عدة JID عند الاقتضاء ، هو ما يمكن أن تفعله Pub-Sub أو Muc. : D وبالتالي ، بناءً على نوع التطبيق الخاص بك ، تحتاج إلى اختيار واحد والمضي قدمًا في تجربة XMPP ، يجب أن تصبح الأمور واضحة أثناء متابعة ....

للإجابة على سؤالك الثاني فيما يتعلق بالإخطار الحقيقي ، ما تحتاجه هو استخدام PEP بدلاً من PubSub. الفرق الرئيسي بين 2 هو ذلك بيب سوف تنشر فقط لأولئك في قائمتك وهو أعتقد ما تريد. علاوة على ذلك ، أعتقد أن PEP مدعوم على نطاق أوسع من PubSub أو Atleast Jabber.org يدعمه. المشكلة الوحيدة في PEP هي أنه يتطلب قدرة الكيان الدعم.

لقد قمت بالتدوين حول هذا الموضوع هنا. أمثلة في جافا. أتمنى ألا تكون سلبيًا لذلك ؛-)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top