Неизвестный формат сообщения XMPP - PullRequest
0 голосов
/ 04 августа 2020

Я новичок в XMPP. Я получаю сообщения с телом, но я также получаю многие из них без тела. Я готовлю демо для платформы iOS.

Что это за сообщения и чем они полезны?

<?xml version="1.0" encoding="UTF-8"?>
<message xmlns="jabber:client" to="nitesh@xmpp.server.io/iPhone" from="nitesh@xmpp.server.io">
   <result xmlns="urn:xmpp:mam:1" id="1596108476932101">
      <forwarded xmlns="urn:xmpp:forward:0">
         <message xmlns="jabber:client" lang="en" to="mayur@xmpp.server.io/converse.js-6910592" from="nitesh@xmpp.server.io/converse.js-69153543" type="chat" id="id9c6b26dd-50dc-467c-a436-dd1e16af05fe">
            <archived xmlns="urn:xmpp:mam:tmp" by="nitesh@xmpp.-server.io" id="1596108476932101" />
            <stanza-id xmlns="urn:xmpp:sid:0" by="nitesh@xmpp.server.io" id="1596108476932101" />
            <received xmlns="urn:xmpp:receipts" id="idcb348164-9a0b-4b9b-b351-03c97341fe91" />
            <store xmlns="urn:xmpp:hints" />
         </message>
         <delay xmlns="urn:xmpp:delay" from="xmpp.server.io" stamp="2020-07-30T11:27:56.932101Z" />
      </forwarded>
   </result>
</message>

1 Ответ

1 голос
/ 06 августа 2020

Это сообщение, которое приходит из архива сообщений (довольно старая реализация, поскольку она все еще использует <archived/> элементы, которые использовались в 2013 и были удалены всего год спустя).

Внешнее сообщение (id = 1596108476932101) - это сообщение носителя, которое используется для пересылки вам внутреннего заархивированного сообщения. Внутреннее сообщение (id = id9c6b26dd-50d c -467 c -a436-dd1e16af05fe) содержит квитанцию ​​о доставке (<received/>), которая сообщает вашему контакту mayur@xmpp.server.io, что другое более раннее сообщение (id = idcb348164-9a0b-4b9b-b351-03c97341fe91) был успешно получен.

Таким образом, в основном вся конструкция представляет собой результат запроса MAM, содержащий заархивированное сообщение с маркером «».

Хотя это конкретное сообщение не очень полезно для вас, в некоторых ситуациях могут пригодиться заархивированные сообщения без тела, поэтому не следует игнорировать их все. Например, заархивированные сообщения, содержащие маркеры чата, , могут быть использованы для синхронизации c сообщений, прочитанных любым из ваших клиентов.

...