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:是开发过程中最主要交互的类,所有扩展和自定义代码均要基于此类进行
?XMPPLogging:XMPP的日志框架
?XMPPParser:供XMPPStream解析使用
?XMPPJID:提供了一个不可变JID的实现,遵守NSCopying协议和NSCoding协议
?XMPPElement:以下三个XMPP元素的基类
?XMPPIQ :请求
?XMPPMessage
:消息
?XMPPPresence :出席(上线)
?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:如果内容是人们可读的,则为消息语言的描述