【发布时间】:2015-05-08 13:04:53
【问题描述】:
我刚刚从折旧的 asmack 切换到 Smack 4.1。 Smack 4.1 会自动发送带有错误 ID 的收据,这在我的情况下会导致异常。
Smack 4.1 在收据上附加了 2 个不同的 ID
这是收到的聊天消息
RECV (0): <message from='***' to='***' xml:lang='en' id='65' kind='0' type='chat'><body>vhh</body><request xmlns='urn:xmpp:receipts'/></message>
这是 Smack 4.1 为响应聊天消息而生成的收到的收据
SENT (0): <message to='***' id='roZ7C-32' type='chat'><received xmlns='urn:xmpp:receipts' id='65'/></message>
Smack 4.1 附加了 2 个不同的 ID,分别是 Received Receipt id='roZ7C-32' 和 id='65'
我的问题是:
- 如何使这 2 个 ID 相同
- 如何禁用收据以便生成自定义收据
【问题讨论】:
-
据我所知,Smack 的行为是正确的。如果这导致交货收据接收方出现异常,那么这是一个错误。
-
为什么 Smack 会针对单个聊天消息附加 2 个不同的 ID 和 Receipt?
-
涉及两个消息节,每个节都有自己的唯一ID。 id 为“65”的第一个消息节被 Smack 确认为与消息节(id“roZ7C-32”)一起发送回包含
<received … id='65'/>的“65”的发件人。 -
我可以让 Smack 发送两个节的 id 65 而不是 roZ7C-32
-
不,这是不可能的,也不是一个好主意。