论文部分内容阅读
XMPP协议作为即时通信领域的开放标准,有着良好的开放性和扩展性,但其核心协议只是即时通信所需的最小完备集,而已有的扩展存在不少缺陷,主要表现为:消息确认机制低效,XMPP协议的消息可靠性采用“一次一确认”方式,效率低下;其次,XMPP协议支持的文件传输方式,都必须直接从对方设备下载文件,文件传输速率不理想;最后,XMPP协议支持群组聊天,但是其开源实现Openfire中,群组不能被持久化存储。针对消息确认问题,本文在消息节中引入版本号属性,通信双方约定时间窗口,定时回复已收到的版本号,从而达到批量确认。新机制下通过消息的选择性重传,提高弱网络环境下通信的可靠性。针对文件传输问题,本文引入了专门的文件传输服务器负责文件数据传输,改进后的XMPP服务器只负责传输包含文件信息的消息,使文件传输和消息传输分离,将设备与设备之间的交互改进为设备与服务器之间的交互,增加了文件传输的可靠性。针对群组持久化问题,优化了XMPP的开源框架Openfire的数据持久模块,完成群组信息的持久化。此外,为了验证上述协议扩展的可行性,本文设计并实现了基于扩展XMPP协议的即时通信系统,并设计了详细的实验方案,对系统性能以及XMPP协议扩展结果进行分析,归纳整个研究过程,本文主要取得了以下几点创新成果:1、针对现有确认机制的不足,提出了基于版本号的消息确认机制扩展,将一次一确认改为批量确认,同时支持在弱网络下自动开启消息确认功能,提升了通信可靠性;2、引入了文件传输服务器,将文件数据的传输和文件消息的发送分离,保持了XMPP服务器的极简化,同时支持异步传输和发送离线文件。3、针对群组持久化问题,优化了Openfire框架的数据持久层,并设计群组插件,实现了完整的群组功能,提升了即时通信系统的功能完整性。实验结果以及系统试运行情况表明,扩展的XMPP协议性能改善明显,课题取得了预期的效果。