ما هو رد فعل العميل XMPP المناسبة ل<نوع الوجود = غير المكتتب ...> مقطع؟
-
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 (غير محتمل، ولكن من يدري).