XMPP框架地址:http://xmpp.org/xmpp-software/libraries/
•https://github.com/robbiehanson/XMPPFramework
•
预计要实现的功能:
•用户登录、注册
•相互添加好友 Roster(花名册)
•好友之间的聊天
•表情文字(CoreText)
•聊天状态 XEP-0085(在线、离开、请 勿打扰)
•聊天室群聊 XEP-0045
•发送文件 XEP-0096
•语音聊天 XEP-0065(本地录音、发送音频、播放)
XMPPMaster解压缩后目录
创建新的XCode空白项目,并勾选Git on my mac
直接在XCode项目中创建一个新的Lib文件夹
1.导入依赖框架
–
CocoaLumberjack:日志框架(Log)
–
CocoaAsyncSocket:底层网络框架
•需要添加
CFNetwork&
Security框架依赖
–
KissXML:XML解析框架
•需要添加
libxml2.
dylib框架依赖
•需要指定如下编译选项:
OTHER_LDFLAGS =-lxml2
HEADER_SEARCH_PATHS =/usr/include/libxml2
–导入文件夹
libidn
•将以下4个文件夹导入到项目
–
Authentication
–
Categories
–
Core
–
Utilities
•
•另外还需要添加libresolv.dylib依赖
•导入XMPP扩展框架
文件夹
–
Extensions
•将
Sample_XMPPFramework
.
h添加到项目,并且重命名为
XMPPFramework
.
h
•
•在终端输入:
git commit -m “添加XMPP框架”
•可以一次性提交所有增加的文件
•XEP-0045:多用户聊天
•XEP-0060:发布-订阅
•XEP-0065:SOCKS5字节流
•XEP-0085: 聊天状态通知
•XEP-0096:文件传输
•XEP-0172:用户昵称
•CoreDataStorage: 数据存储
•Reconnect:重新连接
•Roster:花名册
所有的XMPP扩展
•http://xmpp.org/xmpp-protocols/xmpp-extensions/
•
XMPPStream
:是开发过程中最主要交互的类,所有扩展和自定义代码均要基于此类进行
•
XMPPJID:提供了一个不可变JID的实现,遵守NSCopying协议和NSCoding协议
•
XMPPElement:以下三个XMPP元素的基类 (父类)
•
XMPPIQ :
请求 (加好友是一个请求)
•
XMPPMessage
:消息 (发送的一条消息)
•
XMPPPresence
:
出席(上线、登陆)
•XMPPParser:供XMPPStream解析使用
•XMPPLogging:XMPP的日志框架
•XMPPModule:开发XMPP扩展时使用
•XMPPInternal:整个XMPP框架内部使用的核心和高级底层内容
1.配置连接至XMPP服务器
2.添加
代理
3.添加模块
4.开始连接
5.开始授权
•注意:
–XMPP框架仅提供了一个最小的
代理委托系统
用于接收三种XMPP子类型(IQ、Message和Presence),
如果要实现更多的功能,开发者还需要编写大量的相关代码
–为了简化开发,
通常将
XMPPStream
放置在
AppDelegate
中,以便于全局访问
主要扩展功能:
•
XMPPReconnect:如果意外中断,自动重连XMPP流
•
XMPPRoster:标准的XMPP花名册
•
XMPPRoom:提供多人聊天支持(聊天室)
•
XMPPPubSub:提供公共订阅支持
•etc
•使用XMPP的实时消息传递系统包含三大通信类别:
–
消息传递,其中数据在有关各方之间传输
–
联机状态,允许用户广播其在线状态和可用性
–
信息
/
查询请求,它允许XMPP实体发起请求并从另一个实体接收响应
•以上三种类型的XMPP节都拥有以下公共属性:
–
from:源XMPP实体的JID
–
to:目标接收者的JID
–
id:当前对话的可选标识符
–
type:节的可选子类型
–
xml:lang:如果内容是人们可读的,则为消息语言的描述
导入CFNetwork.framework和Security.framework
导入KissXML(相当麻烦)
添加libxml2的头文件路径,不然,KissXML无法工作
至此,Vendor(小贩、卖主)导入完毕
再将XMPP的4个基础框架导入至项目 (除了Extensions)
暂时用不到的扩展们
最后,还要导入libresolv.dylib
不算扩展,最终结果如图:
Git提交单个文件
更好的做法是:命令行中,切换到工程路径,一次性提交所有的(新增或修改的文件)
git commit -m "对本次操作的一些备注"
全部提交后,XCode文件右边的A(add)就不见了