iOS_32_XMPPFramework框架导入

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:是开发过程中最主要交互的类,所有扩展和自定义代码均要基于此类进行

?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:如果内容是人们可读的,则为消息语言的描述


导入CFNetwork.framework和Security.framework

导入KissXML(相当麻烦)

 
  

添加libxml2的头文件路径,不然,KissXML无法工作

至此,Vendor(小贩、卖主)导入完毕

再将XMPP的4个基础框架导入至项目 (除了Extensions)

暂时用不到的扩展们

最后,还要导入libresolv.dylib

不算扩展,最终结果如图:

Git提交单个文件

更好的做法是:命令行中,切换到工程路径,一次性提交所有的(新增或修改的文件)

git commit -m "对本次操作的一些备注"

全部提交后,XCode文件右边的A(add)就不见了

时间: 2024-10-16 06:18:46

iOS_32_XMPPFramework框架导入的相关文章

iOS的XMPP框架导入

第一部分 XMPP的下载 首先,得从XMPP的官网下载好对应的XMPP框架, 1.    XMPP的官网地址:http://xmpp.org(有时访问不了,试着多刷新几次浏览器,大天朝的网络访问国外网站,你懂的) 2.进入官网之后,点击XMPP softWare选择第三个libraries,如下图所示: 3. 点击libraries,进入下面的界面: 4. 然后找到我们所需要的支持iOS的xmppframework: 点击右边的网站域名,进入到下载界面: 6.点击右下角的下载按钮,就OK了.(可

iOS AFNetworking 2.6.0框架导入报错解决方法

最近手动导入AFNetworking 2.6.0框架时发现Xcode报如下3个错误: 1. Use of undeclared identifier ‘kSecFormatUnknown‘ 2. Use of undeclared identifier ‘kSecItemPemArmour‘ 3. Implicit declaration of function ‘SecItemExport‘ is invalid in C99 查询后发现, 解决方法有如下两种: 第一种: 通过CocoaPod

XMPP-IOS即时通讯XMPP相关框架导入

只是留存一下XMPP相关框架的导入步骤,方便以后查看 一.框架地址 1.其他语言可用XMPPFramework 框架地址 http://xmpp.org/xmpp-software/libraries/ 2.下载XMPPFramework框架: https://github.com/robbiehanson/XMPPFramework 3.git clone https://github.com/robbiehanson/XMPPFramework.git 二.导入相关框架 CocoaLumbe

PHP laravel框架 导入导出excel ,phpexcel数据导出分多个工作区(sheet)

laravel 导入导出有很多 但是你发现等你根据conposer安装excal的时候你发现 他总是不依不饶的提示你: 安装失败 这就是laravel5.4的高明之处了, 下面让我们来看看吧! 1. 在laravel 项目的根目录下 我们会看到 一个composer.json的文件: 打开, 并找到 "maatwebsite/excel": "~2.0.0" 修改为 "~2.1.0" 保存 2. 执行 composer update maatwe

使用IDEA将springboot框架导入的两种方法

第一种新建Maven,导入springboot所依赖的jar包 ??1.新建一个maven项目,下一步命名,保存文件地址,点击完成 ?? ?? ??2.进去springboot下载(点击进入),复制pom.xml文件 ?? ?? ??3.粘贴到新创建的pom.xml文件中,打开右侧的maven工具,点击刷新按钮,自动导入springboot所依赖的工具包 ?? ?? ??4.等待完成,也就创建好了一个springboot项目^_^! 第二种使用Spring Initializr(Eclipse中

lumen框架导入数据异常

# php artisan  make:migration create_table_cars --create=cars # php a'r'tisan migrate 出现此状况: 解决方案: 直接编辑:/Applications/MAMP/htdocs/lu/vendor/laravel/lumen-framework/config/database.php //'host' => env('DB_HOST', 'localhost'), 'host' => env('DB_HOST',

GPUImage框架导入到项目中的方法(转载)

GPUImage 是一个开源的图像处理库,提供了非常多的滤镜效果来加工图片.GPUImage 并不像一般的第三方库可以直接拖入到工程中使用,而是需要先在本地编译,然后将编译后的文件拖入到工程中使用.配置步骤如下: (1):首先下载GPUImage  https://github.com/BradLarson/GPUImage (2):解压后,在framework 目录下,打开 GPUImage.xcodeproj  工程 (3): 把Headers文件夹下 Project中的头文件,全部拖到 P

iOS的CocoaPods手动挡到自动挡到导入第三方框架

iOS的CocoaPods手动挡到自动挡到导入第三方框架 CocoaPods使用 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要 使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况.总之小编的意思就是,手动一个个去下载所需 类库十分麻烦.另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦.如果能有什么工具能解

iOS的CocoaPods手动挡到自动挡到导入第三方框架 转发

CocoaPods使用 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要 使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况.总之小编的意思就是,手动一个个去下载所需 类库十分麻烦.另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦.如果能有什么工具能解决这些恼人的 问题,那将“善莫大焉”.所以,你需要 Coc