ما هو رد فعل العميل XMPP المناسبة ل<نوع الوجود = غير المكتتب ...> مقطع؟

StackOverflow https://stackoverflow.com/questions/605177

  •  03-07-2019
  •  | 
  •  

سؤال

وإليك ما الخادم يرسل لي (openfire) عندما يدويا حذف جهة اتصال من القائمة على الملقم:

'<iq type="set" id="183-87" to="foo@edmund.local/hydra"><query xmlns="jabber:iq:roster"><item jid="bar@yahoo.edmund.local" name="baz" ask="unsubscribe" subscription="none"><group>Buddies</group></item></query></iq>'
'<iq type="set" id="187-88" to="foo@edmund.local/hydra"><query xmlns="jabber:iq:roster"><item jid="bar@yahoo.edmund.local" name="baz" subscription="none"><group>Buddies</group></item></query></iq>'
'<presence type="unsubscribed" to="foo@edmund.local" from="bar@yahoo.edmund.local"/>'

إذا أرد مع 'إلغاء الاشتراك "مقطع جود (التي أعتقد أنها صحيحة وفقا لRFC 3921)، الخادم يحتفظ إغراق لي مع المزيد من التواجد' غير المكتتب".

وفي كلتا الحالتين، في المرة القادمة بتسجيل موكلي في، لم يتغير شيء في القائمة. أفعل شيئا خاطئا؟

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

المحلول

وهذا يعتمد العميل الذي كنت تتحدث عن - سواء كان المشترك أو subscribee

.

إذا كان العميل المشترك، ثم لا شيء:

ووفقا ل القسم 9.4 ، إذا كان المشترك يرسل unsubscribe طلب، أو أي شيء آخر يسبب العميل لتكون غير المكتتب، يجب أن يعترف خادم الطلب / تقرير تغير الدولة مع استجابة unsubscribed. هذا هو نهاية التفاعل.

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

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

وقراءتي للجدول في 9.4 هي للرسائل بين subscribee والخادم خلال إلغاء الاشتراك هو:

subscriber            server             subscribee
    | -- unsubscribe --> |                    |
    |                    | -- unsubscribe --> |
    |                    | <- unsubscribed -- | (optional)
    |                    | -- unsubscribed -> |
    | <- unsubscribed -- |                    |

وقراءتي لل القسم 8.6 أو إزالة القائمة هي هذه:

subscriber            server             subscribee
    | ----- remove ----> |                    |
    |                    | -- unsubscribe --> |
    |                    | -- unsubscribed -> |
    |                    | -- unavailable --> |
    | <- unsubscribed -- |                    |
    | <-- unavailable -- |                    |

ومع عدم وجود اعتراف المطلوبة من قبل أي عميل.

نصائح أخرى

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

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

وهذا إما أن تساعدك على الحصول على موشحات الصحيحة أو أنه سيحدد عدم توافق في openfire (غير محتمل، ولكن من يدري).

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