这是一个可以登录jabber账号,获取好友列表,并且能与好友进行聊天的项目。
使用的是第三方库XMPPFramework框架来实现XMPP通讯。
项目地址:XMPP-Project
项目准备工作:搭建好Openfire服务器,安装客户端Spark,具体步骤请见:iOS实现XMPP通讯(一)搭建Openfire
这样就可以登录本项目与登录Spark的另一用户进行XMPP通讯。
项目结构概述:
有三个视图控制器LoginViewController,ListViewController,ChatViewController
LoginViewController:登录和注册xmpp账号界面
ListViewController:获取花名册(好友列表)界面
ChatViewController:和好友进行单聊界面
为此封装了XmppManager类,方便统一管理与服务器的连接、好友列表回调、聊天消息回调等代理方法。
注意:由于XMPPFramework框架还依赖其他第三方库,如KissXML、CocoaAsyncSocket等,因此用cocoaPods添加XMPPFramework库时,podfile必须添加use_frameworks!,如下:
platform:ios , '8.0' target 'XMPP' do use_frameworks! pod 'XMPPFramework', '~> 4.0.0' end 注册登录xmpp的登录流程是:先连接xmpp服务器,连接成功后再进行登录的鉴权,即校验密码的准确性。
xmpp的注册流程是:先连接xmpp服务器,连接成功后再向xmpp服务器注册账号、密码。
XmppManager类提供一个连接xmpp服务器的方法,当点击LoginViewController的"注册"和"登录"按钮时调用该方法。(备注:islogin用来区分是登录还是注册),该方法如下:
HOST是Openfire后台服务器的主机名,我们在Openfire后台服务器中配置了主机名为127.0.0.1,让电脑充当Openfire服务器,因此HOST的值为我电脑网络的IP地址192.168.2.2。
Openfire后台服务器配置的客户端连接端口默认是5222,因此这里KPort的值设为5222。后台配置如下: