如何知道该邮件是使用XMPP framework
和ejabberd
传递给其他用户的,我们使用XEP-0184类作为邮件传递收据,我们在发送邮件时发送收据请求但没有得到任何回应。
我的查询是否需要在服务器上配置任何内容(或ejabberd.cfg
文件中的任何更改)以获取我们需要执行的任何客户端代码。
答案 0 :(得分:5)
不,XEP-0184是纯粹的客户端协议,因此无需在服务器上进行设置。
在您未收到任何确认的原因中可能有:
XEP-0184
。根据您正在使用的XMPP库(在 客户端 - 发件人和收件人),发件人可能决定甚至不请求收据如果它discovers(通过查询对等方的能力)已关闭XEP-0184
。
可能更清楚:XEP通常建议实现检查是否支持XEP定义的功能,如果不支持则不尝试使用它。并非所有的库和客户都这样做,但有些人这样做。这意味着某些实现可能是这样的:好的,我被要求发送送达回执请求,所以
XEP-0184
。特定的XMPP库是否单独执行 取决于“智能”的制作方式。
如果XMPP Framework
表示this library,请尝试阅读其源代码以查看它是否“智能”并询问对等方的上限,然后检查是否XEP-0184
已启用。
还要检查您是否可以启用客户端交换的XML流的日志记录。检查它们是调试XMPP相关问题的最佳方法。
答案 1 :(得分:2)
您可以使用XEP-0022消息事件扩展来实现此目的:
这里是你的消息节结构:
<message to='username@domain.com' id='msgId-21102012,12:12:11'>
<body>How are you doing?</body>
<x xmlns='jabber:x:event'>
<offline/>
<delivered/>
<composing/>
</x>
</message>
根据收据状态,开火将响应消息事件状态。一旦查看XEP-022扩展名。