Как удалить конкретное сообщение между двумя пользователями из ejabberd с помощью XMPPFramework? - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь удалить сообщение из ejabberd, но получаю от него ошибку.

<iq xmlns="jabber:client" to="my id" from="other user id" type="error" id="8A056958-DE72-4234-8440-928E8D650948"><remove xmlns="urn:xmpp:archive" with="other user id" start="2018-08-30T10:40:00Z"/><error code="503" type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">No module is handling this query</text></error></iq>

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 31 августа 2018

Из того, что я вижу здесь https://www.process -one.net / ru / ejabberd / protocol /

Ejabberd не поддерживает старый архив сообщений XEP-0136, вместо этого он поддерживает управление архивом сообщений XEP-0313.

Следующий XEP можно использовать для удаления сообщения отправителя и получателя. http://legastero.github.io/customxeps/extensions/message-delete.html

.

Но я не знаю, как удалять сообщения из XEP-0313 Message Archive Management - похоже, что это невозможно с ejabberd и самим XEP. Я не вижу ни одного сообщения, хранящегося в БД https://github.com/processone/ejabberd/blob/master/src/mod_mam_sql.erl#L110

Единственная идея, которая у меня есть, - хранить текстовые сообщения вместе с удаляемыми состояниями в архиве. И затем, при получении истории, применить эти сигналы удаления к сообщениям

...