سؤال

أواجه الكثير من الصعوبة في العمل في العمل.

أنا أعمل على شبكة اجتماعية حيث سيقوم المستخدمون بتصفح صفحات الأمواج ، وفي الوقت نفسه يحتفظون بتوصيل الدردشة. لا أريد إعادة الاتصال/إعادة تفويضه في كل صفحة وفقًا لهذا الرابط ، http://groups.google.com/group/strophe/browse_thread/thread/430da5e788278f3a/93c48c88164f382f؟show_docid=93c48c88164f382f&fwc=1, ، أقوم بتخزين SID والتخلص من ملف تعريف الارتباط.

في الصفحة التالية عندما أحاول استخدام SID الجديد والتخلص (بعد زيادة 1) تم تدمير جلستي بالفعل. تقارير Ejabberd "خطأ في وضع http. السبب: bad_key"

WTF يحدث؟

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

المحلول 2

تمكنت من حل المشكلة.

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

لا أعرف لماذا تم إلغاء الجلسة ، ولكن هذا ما حدث:

  1. نظرًا لأن RID هو +2 أكثر من السابقين ، فإن Ejabberd يخزن الطلب في المخزن المؤقت ولا يقوم بإعادة توجيهه إلى العملاء
  2. يتم أيضًا تخزين الطلبين التاليين
  3. واحد بعد ذلك يتسبب في إلغاء إيجاببرد الجلسة

أي أدلة؟

نصائح أخرى

بدون مزيد من معلومات التسجيل من Ejabberd أو Firebug ، سيكون من الصعب تشخيص ذلك. هل يتم تخزين التخلص الصحيح بالفعل في ملف تعريف الارتباط؟ ما الذي يعتقد Ejabberd هو آخر stanza الذي أرسلته ، وما هي قيمة التخلص منها؟ ما هي أول ستانزا وأول قيمة تخلص في الصفحة الجديدة؟ ما هي الوقت بين هذين المقطعين؟

تحديث: السبب في إلغاء الجلسة يرجع إلى نموذج أمان بوش. على نحو فعال ، SID و RID زوج سري. إذا كنت تعرف الزوج ، فيمكنك إرفاق الجلسة. من أجل الحفاظ على أن الناس يتشكلون في التخمين ، يتم التقاط التخلص بشكل عشوائي من مساحة كبيرة جدًا. إذا أرسلت تخلصًا خارج نافذة صغيرة جدًا من التخلص الحالي ، فسيقوم بقطع الجلسة. عادة ما تكون النافذة (تخلص ، تخلص + 5) أو نحو ذلك.

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