论文部分内容阅读
随着3G网络的普及,移动网络速度大幅提升,而即时通讯软件作为人们生活中不可缺少的交流工具之一,已经从传统的桌面系统覆盖到移动应用。市场对即时通讯软件的需求越来越大,尤其是企业内部,出于内部交流、方便管理、信息保密等原因,大中小型企业都逐渐开始开发或者购买企业级通讯系统。每个企业都开发自己独有的即时通讯软件需要耗费大量人力物力,而开源社区相关开源软件大多基于XMPP协议,传输格式采用XML,缺乏对其他传输格式的探索和应用,而且缺少对主流移动平台的支持,特别是iOS。正是基于以上的背景,本文主要研究实现了一套基于Protocol Buffers的即时通讯系统,采用Google的Protocol Buffers作为文本传输格式,比传统的XML和JSON速度更快、数据更小。数据库采用轻量级的SQLite存放各种信息。最终在目前主流手机操作系统苹果的iOS上实现该即时通讯系统的客户端。可以实现两人或群组内的文本、语音的实时通讯,可以进行图片、文档等其他格式文件的传送,还可以查看好友列表,实现了主流即时通讯软件的大部分功能。另外添加了企业级需要的部门列表,方便内部人员的沟通。在研究和实现过程中,采用软件工程、设计模式作为指导,使得软件的重用性和扩展性更加完善,比如采用面向对象的继承解决两人聊天与群组聊天功能重复代码重复的问题,将数据库设计为单例模式,用委托方式实现Socket断开后的重连,采用通知模式完成消息的分发等。本文主要讲述在研究和实现过程中核心部分的具体实现,遇到的问题及解决方案,最终的效果和测试。包括利用iOS高级特性GCD结合block编程采用异步方式解决并发编程,数据库的设计与实现,通讯协议的设计和实现,Socket长连接的实现,动态聊天界面的绘制,Protocol Buffers的性能分析等。旨在为开源的企业级即时通讯软件提供新的思路和实现方式。