原理介绍
简介
XMPP是一种基于标准通用标记语言的子集XML协议,具有超强的可拓展性。经过拓展的XMPP可以通过发送拓展的信息来处理用户需求。XMPP包含了正对服务端的软件协议,使之能够与另一个进行通话。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。目前由IETF国际标准组织完成标准化工作。
标准化的核心分为两个部分
- 核心的XML流传输协议
- 基于XMLFreeEIM流传输的即时通讯扩展应用(这部分支持语音和视频)
优点:
开放,它是开放源码的,自由开放公开。
标准化,IETF 互联网工程工作小组标准化
成熟,第一个jabber技术是在1998年开发的,现在已经相当稳定
开始使用XMPPFramework
本文演示一个运行了XMPPFramework框架的项目demo,这不是一个成熟的应用,仅仅展示了框架的使用方法。本demo仅仅使用了框架的一部分功能。当你决定添加XMPP框架到你自己的IOS应用中,本文将提供详细的介绍。最好按照流程一步一步来,不要跳过某些步骤。
Setp1:
下载最新的代码
Step2
框架有几个依赖的文件,当你把XMPPFramework拿下来的时候,已经自动放在Vendor文件夹下面。我们将把每一个依赖文件过一遍。
第一个依赖包是CocoaLumberjack,它的位置:Vendor/CocoaLumberjack。拖进工程选择copy,确保项目能够编译。
Step3
第二个依赖包是CocoaAsyncSocket,它的位置:Vendor/CocoaAsyncSocket,拖进工程选择copy。
这个包需要你添加苹果的CFNetwork framework和Security framework。Target -> Build Phases -> Link Binary With Libraries -> + ->选择CFNetwork framework和Security framework。添加完后,确保项目能够编译。
Step4
第三个依赖包是KissXml,在Vendor/KissXML 可以找到。KissXML使用libxml2,你需要添加苹果的libxml2库 到工程文件中。在Targets->BuildSettings->Search Paths-> + ->/usr/include/libxml2。
libxml2.需要你添加苹果的CFNetwork framework和Security framework。Target -> Build Phases -> Link Binary With Libraries -> + ->选择libxml2.dylb。
添加完后,确保项目能够编译
Step5
第四个,也是最后一个依赖包是LIBLdn,添加下面的三个文件到Xcode工程文件
- Vendor/libidn/idn-int.h
- Vendor/libidn/stringprep.h
- Vendor/libidn/libidn.a
最后一个文件是静态库,支持x86*64, i386, ppc, armv6, armv7指令集,因此比较大1.3M。但你的应用打包时,它只会解压你的应用需要用到的指令集对应的文件,所以不用担心应用程序文件变大。添加完成后,确保项目能够编译。
Step6
添加以下的文件夹到工程中
- Authentication
- Categories
- Core
- Utilities
Target -> Build Phases -> Link Binary With Libraries -> + ->选择libresolv.dylib,添加完后,确保项目能够编译。
现在你已经可以开始使用XMPPFramwork 在你的项目中,
以下页面你可以了解它的使用
https://github.com/robbiehanson/XMPPFramework/wiki/IntroToFramework
————————————————————我是分割线————————————————————
最后吐槽一下这个 XMPP GettingStart 介绍页, 明明三言两语就能说清楚的,罗里吧嗦一大堆。
最后我自己的整理版本是这样的:
添加以下的文件夹到工程中
- Authentication
- Categories
- Core
- Utilities
添加Vendor下面的CocoaLumberjack、CocoaAsyncSocket、KissXml、LIBLdn文件夹道工程中,选择copy。
添加苹果的libxml2库 到工程文件中。在Targets->BuildSettings->Search Paths-> + ->/usr/include/libxml2
添加苹果的动态链接库。Target -> Build Phases -> Link Binary With Libraries -> + ->选择CFNetwork framework、libxml2.dylb、Security framework、libresolv.dylib。
最后确保编译通过。
厚吾(http://blog.csdn.net/mangosnow)
本文遵循“署名-非商业用途-保持一致”创作公用协议