Miranda NG русскоязычный форум > Разработка

Подтверждение доставки

(1/1)

Ivan99:
Доброго времени суток!

Есть ситуация: если в ответ на отправленное сообщение приходит пакет <received>, все нормально, сообщение отображается в чате. Если же его нет, а есть <displayed> - на экране выдается ошибка "Доставка не удалась: время отправки истекло" с кнопками повтора и отмены, такие исходящие сообщения в историю переписки не попадают.

Конкретные примеры - с одной стороны Miranda-NG, на другом конце провода xabber.org. С веб клиентом (web.xabber.com) все нормально, с ведроид версией наблюдается проблема.

Я вижу что у XEP-0333: Chat Markers статус Experimental.
В настройках Миранды я отключил опцию "Отправлять сообщения медленнее, но с подтверждением", без перезапуска не вижу чтобы что-то поменялось. Разъясните, пожалуйста, с точки зрения протокола - <received и <displayed должны поддерживаться клиентом, или это все таки дополнительные возможности XMPP, отсутствие которых не должны вызывать ошибки? Как заставить работать отправку сообщений, независимо от корректности ответа от получателя?

ghazan:
Так displayed вовсе не означает доставку, оно означает, что сообщение показано на экране, а Миранда, конечно же, ждет именно received
Миранда поддерживает оба уведомления, только реакция на них немного разная

Ivan99:
Добрый день.
То есть клиент, не отправляющий received - не полностью соответствует стандарту XMPP?

Я вижу что XEP-0333: Chat Markers в статусе Experimental, то есть его реализация не обязательна, а XEP-0184: Message Delivery Receipts в статусе Draft, написано "encouraged".

Каково поведение Миранды если клиент не возвращает <received >, как там задумано? Или это связано с тем что тот клиент неправильно формирует Initial Service Discovery (честно этот момент в дампе не смотрел и не записывал)?
Я уже нашел кнопку "отправлять обычно" / "отправлять небезопасно", это решает проблему, но кажется что эта фича либо не сохраняется после перезапуска, либо для всех контактов общая, хотя в такой ситуации надо бы ее применять только для чатов с "кривыми" клиентами.

dartraiden:
Строго говоря, стандарта XMPP не существует, существует лишь несколько сотен отдельных XEP-ов. Поэтому "не соответствует / не соответствует в полной мере конкретному XEP-у".
Что касается экспериментальности, то мы реализовываем те XEP-ы, которые востребованы пользователями.


--- Quote ---"Отправлять сообщения медленнее, но с подтверждением"
--- End quote ---
Надо смотреть, поддерживается ли на том конце XEP-0184, может он не поддерживается, или поддерживается не полностью, или в реализации допущена ошибка.

В этом и проблема XMPP: куча XEP-ов и полный разнобой в их поддержке клиентами и серверами.

ghazan:

--- Quote from: Ivan99 on 24 10 2020, 08:17:21 ---Каково поведение Миранды если клиент не возвращает <received >, как там задумано?
--- End quote ---
Миранда, разумеется, считает, что сообщение не доставлено, если выставлена галка проверять статус доставки


--- Quote from: Ivan99 on 24 10 2020, 08:17:21 ---То есть клиент, не отправляющий received - не полностью соответствует стандарту XMPP?
--- End quote ---
да, типа того

Navigation

[0] Message Index

There was an error while thanking
Thanking...
Go to full version