关于XMPP和openfire中的消息回执
关于XMPP和openfire中的消息回执
?
1 协议层:
XMPP扩展协议已经定义了消息回执,参见?http://xmpp.org/extensions/xep-0184.html? ?
?
<messagefrom='northumberland@shakespeare.lit/westminster'id='richard2-4.1.247'to='kingrichard@royalty.england.lit/throne'><body>My lord, dispatch; read o'er these articles.</body><request xmlns='urn:xmpp:receipts'/></message>?<messagefrom='kingrichard@royalty.england.lit/throne'id='bi29sg183b4v'to='northumberland@shakespeare.lit/westminster'><received xmlns='urn:xmpp:receipts' id='richard2-4.1.247'/></message>?
?
?
?
?
2 实现层
?
openfire项目中,今年(2011)3月已经有人提交了此feature,参见?http://issues.igniterealtime.org/browse/OF-434
Add support for XEP-0184: Message Delivery Receipts
?
不过正如 wroot 对我的回复所述,此特性的release还遥遥无期:
wroot 写道If nobody provides patches, probably never. We don't have active developers at the moment.??
3 解决方案?
?
- 如果可能,自己修改openfire,实现此特性即可。 其实难度不大,只是openfire是开源项目,多人异地协作,目前相对稳定,稳步发展;所以增加这种特性比自己实现还缓慢,需要有人推进才行。
?
- 曲线救国: 对于message消息,自己可以做一些私有的约定,比如服务器做一些响应,客户端额外发一些IQ等。
?
?
以上是两种思路,具体实现还要看产品或项目的具体需求,比如是否严格控制网络带宽,是否严格要求信息投递成功率等。