xmpp整理笔记:xmppFramework框架的导入和介绍
一个将要开发xmpp的项目,建议在项目刚创建就导入框架,这样可以避免一些自己操作失误造成不必要的损失。
xmpp中最常用的框架就是 xmppFrameWork
往期回顾:
xmpp整理笔记:环境的快速配置(附安装包) http://www.cnblogs.com/dsxniubility/p/4304570.html
如果你不是在董铂然博客园看到本文请 点击查看原文
第一种方法直接拖
1> 拖入文件夹
在网盘链接的xmppFramework文件夹 :http://pan.baidu.com/s/1jGxLa3G
也可以直接去github搜索下载。
2> 拖入Sample_XMPPFramework.h,重命名为XMPPFramework.h

3> 添加框架
CFNetwork.framework
Security.framework
libxml2.dylib
libresolv.dylib
libin.a

4> 修改Build Settings
Header Search Paths
添加 "/usr/include/libxml2"
Other Linker Flags
添加 "-lxml2"
Library Search Paths
将"$(PROJECT_DIR)/01-仿QQ/Lib/XMPP/Vendor/libidn"
修改为"$(PROJECT_DIR)",并改为"recursive"

5> 修改XMPP/Core/XMPP.h
在文件顶部添加"#import <UIKit/UIKit.h>"

第二种方法cocoapods
就是使用cocoapods 可以一次性导入,并且也不需要上述的配置和调整。并且以后更新框架的时候一个pod update完事。
但是有一个很严重的问题。就是你在导入框架pod install的时候会报错,出现一个 circular dependency 就是循环依赖。这是cocoapods的版本问题,cocoapods0.35版本会对xmppFramework框架造成循环依赖,解决的方法就是,将cocoapods的版本降到 0.34.4
终端操作指令如下:
1.卸载cocoapods
$ sudo gem uninstall cocoapods
2.安装xcodeproj
$ sudo gem install xcodeproj
3.安装指定版本0.34.4的cocoapods
$ sudo gem install cocoapods -v 0.34.4
但是这样很不爽啊,因为往后swift什么的编程全都需要cocoapods的版本保持最新0.35 甚至0.36. 所以这个降版本非常蛋疼,两种方法都能用。具体使用哪种,可根据自己喜好决定。反正我是选了第一种。
框架内的大致介绍
Authentication 授权,身份验证
Categories 分类
Core 核心
Extensions 扩展
Utilities 工具
Vendor 第三方库
在Extensions中:
CoreDataStorage coreData存储
Reconnect 重新连接
Roster 好友管理
有数据表 XMPPRoster 用来管理用户
管理用户的类 XMPPUserCoreDataStorageObject
SystemInputActivityMonitor 系统输入的活动监控
常用的模块:
XEP - 0009 RPC(类似黑客技术)
XEP - 0012 最后的活动(判断上线,离开断开)
XEP - 0045 多人聊天
XEP - 0054 名片-个人信息设置
XEP - 0065 sockets5字节流
XEP - 0066 二进制数据传输(特殊信息的发送)
XEP - 0085 聊天状态通知
XEP - 0136 聊天记录归档
其中有数据表 XMPPMessageArchiving
取出当前信息的类 XMPPMessageArchiving_Message_CoreDataObject
XEP - 0153 基于名片的头像
XEP - 0199 xmpp ping (用来ping服务器和ping自己)
XEP - 0335 json容器(可能以后某些信息传输将用json格式)
在core中:
XMPPElement 是一个基类 ,延展出三个子类
XMPPIQ 请求 (用户登录,用户注册,添加好友等)
XMPPMessage 消息(用来发各种消息等)
XMPPPresence 展现(用户上线下线提示等)
XMPPStream 流,非常常用,大部分类的加载都在写在流的懒加载里
在vender中:
kissXML 用于xml的主要解析框架
如果你不是在董铂然博客园看到本文请 点击查看原文
接下来将会整理,用户管理模块和信息发送模块,有兴趣的欢迎关注我
xmpp整理笔记:xmppFramework框架的导入和介绍的更多相关文章
- xmpp整理笔记:发送图片信息和声音信息
图片和音频文件发送的基本思路就是: 先将图片转化成二进制文件,然后将二进制文件进行base64编码,编码后成字符串.在即将发送的message内添加一个子节点,节点的stringValue(节点的值) ...
- xmpp整理笔记:聊天信息的发送与显示
任何一个信息的发送都需要关注两个部分,信息的发出,和信息在界面中的显示 往期回顾: xmpp整理笔记:环境的快速配置(附安装包) http://www.cnblogs.com/dsxniubilit ...
- xmpp整理笔记:用户网络连接及好友的管理
xmpp中的用户连接模块包括用户的上线与下线信息展现,用户登录,用户的注册: 好友模块包括好友的添加,好友的删除,好友列表的展示. 在xmpp中 负责数据传输的类是xmppStream,开发的过程中, ...
- xmpp整理笔记:环境的快速配置(附安装包)
现在虽然环信的xmpp框架很火,但是也有一些弊端.环信的框架部分代码不开源,而且收费模式不科学,用户量一直低于免费线则好,一旦超过,收费极高. xmpp感觉还是从xmppFramework框架学起比较 ...
- ios xmppFramework框架的导入步骤和介绍
一个将要开发xmpp的项目,建议在项目刚创建就导入框架,这样可以避免一些自己操作失误造成不必要的损失. xmpp中最常用的框架就是 xmppFrameWork 第一种方法直接拖 1> 拖入文件夹 ...
- (六十七)Xcode导入XMPPFramework框架
首先下载XMPPFramework框架,将Vendor内容导入到工程中,其中KissXML需要额外的框架,需要通过Xcode设置. 选择工程选项中TARGETS的General标签,最下侧有Linke ...
- 手动导入XMPPFramework框架
环境: Xcode 8.2.1 XMPPFramework 3.6.5 (下载地址) Objective-C (项目使用的语言,最新版的3.7.0要求convert to swift) 1.下载XMP ...
- XMPPFramework 框架
https://blog.csdn.net/qq_29846663/article/details/70170646 2017-04-14 11:37:02 于海明 阅读数 478更多 分类专栏: i ...
- canvas学习之API整理笔记(二)
前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...
随机推荐
- .NET知识结构
.NET知识结构 .NET介绍 微软.NET战略及技术体系,.NET Framework框架类库(FCL),公共语言运行时(CLR),通用类型系统(CTS),公共语言规范(CLS),程序集(Assem ...
- (翻译)编写属于你的jQuery插件
Writing Your Own jQuery Plugins 原文地址:http://blog.teamtreehouse.com/writing-your-own-jquery-plugins j ...
- 【模式匹配】Aho-Corasick自动机
1. 多模匹配 AC自动机(Aho-Corasick Automaton)是多模匹配算法的一种.所谓多模匹配,是指在字符串匹配中,模式串有多个.前面所介绍的KMP.BM为单模匹配,即模式串只有一个.假 ...
- [logstash-input-log4j]插件使用详解
Log4j插件可以通过log4j.jar获取Java日志,搭配Log4j的SocketAppender和SocketHubAppender使用,常用于简单的集群日志汇总. 最小化的配置 input { ...
- ASP.NET MVC WEB API必知必会知识点总结
一.理解WEB API:提供基于RESTful架构的WEB服务,通过HTTP请求方法(GET, PUT, POST, DELETE)映射到服务器端相应的ACTION方法(CRUD). RESTful架 ...
- SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)
SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅 ...
- Json字符串反序列化
using DevComponents.DotNetBar; using MyControl; using Newtonsoft.Json; using System; using System.Co ...
- 慎用Assembly.LoadFile()和Assembly.LoadFrom()
经测这俩方法会锁住文件,导致程序运行期间无法对load过的程序集文件进行更名/删除/覆盖等等操作,考虑用Assembly.Load()文件字节组替代: Assembly.Load(File.ReadA ...
- 精品干货丨APP常用导航框架
文章目的:在整体上把握移动端App的导航框架,理解每种导航所具有的优点.局限性和其所适用的范围. 文章用心:典型APP案例(源码:http://www.jinhusns.com/Products/Do ...
- 为ASP.NET配置IIS7服务器支持十万个同时请求
1. IIS7中应用程序池队列长度调整为65535(默认为1000) 打开IIS7管理器,选择应用程序池,右键选择应用程序池,选择高级设置,把1000改为65535