好文档 - 专业文书写作范文服务资料分享网站

基于XMPP的iOS客户端和服务器通信设计与实现

天下 分享 时间: 加入收藏 我要投稿 点赞

基于XMPP的iOS客户端和服务器通信设计与实现

陈 伟, 卜庆凯

【摘 要】摘要: 针对iOS系统的广泛使用,本文通过Xcode开发工具对iPhone APP的创建与开发进行了研究。介绍了可扩展通讯和表示协议的实现架构、在macOS环境的服务器搭建和通讯类APP的架构设计。同时,采用Xcode、MySQL、Openfire以及XMPPFramework等工具搭建IM软件开发环境,通过搭建好的APP开发环境,实现即时通讯APP的简易开发,并检测在iOS系统中的运行情况。检测结果表明,APP的界面布局以及聊天、电子名片等功能符合要求,实现了注册登录、联系人列表、聊天信息的传递及个人电子资料卡的存储与展示等功能。该研究为iOS开发人员提供了便捷的软件开发平台,具有一定的借鉴和参考价值。 【期刊名称】青岛大学学报(工程技术版) 【年(卷),期】2017(032)004 【总页数】7

【关键词】 XMPP; Xcode; 即使通讯; APP; 开发环境

随着互联网的迅速崛起,即时通信(instant messaging,IM)成为人们必备的交流工具。而在即时通信技术中,使用最为广泛的是可扩展通讯和表示协议(extensible messaging and presence protocol,XMPP)[1]。为了物联网标准和体系更加完善,XMPP协议在国外学者的不断研究下,从最初的一个开源形式组织的网络通讯协议,发展到目前已被国际互联网工程任务(the internet engineering task force,IETF)组织完成了一系列技术标准化工作,使任何使用该协议的软件都可以实现相互通信[2]。而朱先飞等人[3]分析了SIMPLE和标

准化XMPP协议的优势和劣势,并设计出基于XMPP协议的移动IM原型系统架构,实现即时聊天功能。因此,本文在已标准化的XMPP协议基础上,研究了XMPP的实现原理,在移动IM系统架构的基础上,设计了一款适合iOS平台的IM系统框架,并在该平台完成即时通信软件的功能设计和实现。在软件实现过程中,为了避免用户登录信息的丢失,设计一个继承自NSObject对象的单例模式WCXMPPTool类,将用户的所有信息存放在单例模式中供所有的控制器使用,以减少软件重复从服务器中获取用户数据,优化了软件对内存的重复占用,提高了软件的执行效率。该设计使基于XMPP和Xcode搭建的APP开发环境得到验证,为iOS软件开发人员提供了便捷的软件开发平台。

1 XMPP架构

即时通讯技术是一种支持用户在线实时交谈的技术,如Yahoo IM、MSN和QQ等通讯软件,都具有各自的核心——通讯传输协议[4]。由于他们各自的通讯传输协议不同,因此软件之间不能相互通信。而打破这个缺陷的唯一方法是使用相同的通讯传输协议,因此诞生了XMPP协议。XMPP是一种以Jabber(Linux即时通讯服务服务器)协议为基础的可扩展标记语言(extensible markup language,XML)协议,传输方式通过即时通信和需求响应服务中的XML数据元格式[5],可以在不同XMPP服务器之间通过字符串验证身份,使用扩充C/S模式验证能力机制(simple authentication and security layer,SASL)和安全传输层协议(transport layer security,TLS)加密技术,保证用户信息传输安全。主要用于网络系统中即时消息的传递,保证服务器之间的通信操作[6]。

即时通讯系统中主要以客户端/服务器(client/server,C/S)和对等(pere to

pere,P2P)两种通讯模式为主。P2P模式是一种在对等者之间分配任务和工作负载的分布式应用架构,信息传递不通过中间服务器端,客户端自己承担各种信息任务的处理,缺点是消耗设备资源大,用户体验差[7]。XMPP协议以C/S为基本结构,包含客户端、服务器、网关3部分,任意两个部分可以双向通信。在这种架构中,具有唯一标识的客户端通过相互关联的服务器与其他标识的客户端相互通信,服务器端集中管理和维护系统功能,不仅降低维护难度,而且减少了客户端的压力。服务器端主要记录客户端的连接状态以及信息的路由管理等功能,网关保证了异构即时通信系统的连接传输[8]。服务端既可以在单个域之中进行通信,也可以通过网关在外部消息传递域和协议之间进行转换,从而在不同域之间进行路由通信。网关主要负责XMPP传输信息与外部消息之间的转换和翻译,以及连接不同的服务器[9]。包含网关的XMPP架构系统如图1所示。图1包含一个XMPP网络,该网络由两个域名的XMPP服务组成,通过网络传输到XMPP网关,网关通往一个短信服务(SMS)域和简单邮件传输协议(SMTP)域[10]。XMPP客户端基于iOS平台开发,主要功能为客户端之间的通信服务,客户端向服务端发送连接请求,服务端回应请求。系统通过移动数据流量或无线网络与Internet网络连接,实现服务器与iOS客户端和macOS客户端的即时通信[11]。服务端采用openfire服务器,可允许多个客户端同时登陆和通信,承载能力强。对于客户端的连接请求,服务器会对其进行通信认证,认证完成后即可正常通信。

2 iOS系统介绍

2.1 iOS系统架构

iOS(iPhone Operation System,苹果公司移动操作系统)基于UNIX系统,在

基于XMPP的iOS客户端和服务器通信设计与实现

基于XMPP的iOS客户端和服务器通信设计与实现陈伟,卜庆凯【摘要】摘要:针对iOS系统的广泛使用,本文通过Xcode开发工具对iPhoneAPP的创建与开发进行了研究。介绍了可扩展通讯和表示协议的实现架构、在macOS环境的服务器搭建和通讯类APP的架构设计。同时,采用Xcode、MySQL、Openfire以及XMP
推荐度:
点击下载文档文档为doc格式
8wz788r4r36b8ve00zsa83uyx967u500v99
领取福利

微信扫码领取福利

微信扫码分享