即时通信2
xmpp整理筆記:xmppFramework框架的導(dǎo)入和介紹
一個(gè)將要開發(fā)xmpp的項(xiàng)目,建議在項(xiàng)目剛創(chuàng)建就導(dǎo)入框架,這樣可以避免一些自己操作失誤造成不必要的損失。
xmpp中最常用的框架就是 xmppFrameWork
往期回顧:
xmpp整理筆記:環(huán)境的快速配置(附安裝包)??http://www.cnblogs.com/zhonghuaxiaodangjia/p/4323460.html
第一種方法直接拖
1>?拖入文件夾
?在網(wǎng)盤鏈接的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 可以一次性導(dǎo)入,并且也不需要上述的配置和調(diào)整。并且以后更新框架的時(shí)候一個(gè)pod update完事。
但是有一個(gè)很嚴(yán)重的問題。就是你在導(dǎo)入框架pod install的時(shí)候會報(bào)錯(cuò),出現(xiàn)一個(gè)?circular dependency?就是循環(huán)依賴。這是cocoapods的版本問題,cocoapods0.35版本會對xmppFramework框架造成循環(huán)依賴,解決的方法就是,將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
?
但是這樣很不爽啊,因?yàn)橥髎wift什么的編程全都需要cocoapods的版本保持最新0.35 甚至0.36. 所以這個(gè)降版本非常蛋疼,兩種方法都能用。具體使用哪種,可根據(jù)自己喜好決定。反正我是選了第一種。
?
框架內(nèi)的大致介紹
Authentication? ? 授權(quán),身份驗(yàn)證
Categories? ? ? ? 分類
Core? ? ? ? ? ? ? 核心
Extensions? ? ? ? 擴(kuò)展
Utilities ? ? ? ? 工具
Vendor? ? ? ? ? ? 第三方庫
?
在Extensions中:
CoreDataStorage? coreData存儲
Reconnect 重新連接
Roster 好友管理
有數(shù)據(jù)表?XMPPRoster 用來管理用戶
管理用戶的類?XMPPUserCoreDataStorageObject
SystemInputActivityMonitor? 系統(tǒng)輸入的活動監(jiān)控
常用的模塊:
XEP - 0009 RPC(類似黑客技術(shù))
XEP - 0012 最后的活動(判斷上線,離開斷開)
XEP - 0045 多人聊天
XEP - 0054 名片-個(gè)人信息設(shè)置
XEP - 0065 sockets5字節(jié)流
XEP - 0066 二進(jìn)制數(shù)據(jù)傳輸(特殊信息的發(fā)送)
XEP - 0085 聊天狀態(tài)通知
XEP - 0136 聊天記錄歸檔
其中有數(shù)據(jù)表?XMPPMessageArchiving
取出當(dāng)前信息的類?XMPPMessageArchiving_Message_CoreDataObject?
XEP - 0153 基于名片的頭像
XEP - 0199 xmpp ping (用來ping服務(wù)器和ping自己)
XEP - 0335 json容器(可能以后某些信息傳輸將用json格式)
?
在core中:
XMPPElement 是一個(gè)基類 ,延展出三個(gè)子類
XMPPIQ 請求 (用戶登錄,用戶注冊,添加好友等)
XMPPMessage 消息(用來發(fā)各種消息等)
XMPPPresence 展現(xiàn)(用戶上線下線提示等)
XMPPStream 流,非常常用,大部分類的加載都在寫在流的懶加載里
在vender中:
kissXML 用于xml的主要解析框架
轉(zhuǎn)載于:https://www.cnblogs.com/zhonghuaxiaodangjia/p/4323475.html
總結(jié)
- 上一篇: WCF消息拦截,利用消息拦截做身份验证服
- 下一篇: 一张图看懂数据防泄漏