一個將要開發xmpp的項目,建議在項目剛建立就導入框架,這樣能夠避免一些本身操做失誤形成沒必要要的損失。html
xmpp中最經常使用的框架就是 xmppFrameWorkgit
往期回顧:github
xmpp整理筆記:環境的快速配置(附安裝包) http://www.cnblogs.com/zhonghuaxiaodangjia/p/4323460.html編程
在網盤連接的xmppFramework文件夾 :http://pan.baidu.com/s/1jGxLa3Gjson
也能夠直接去github搜索下載。swift
CFNetwork.frameworkxcode
Security.framework服務器
libxml2.dylib框架
libresolv.dylibsocket
libin.a
Header Search Paths
添加 "/usr/include/libxml2"
Other Linker Flags
添加 "-lxml2"
Library Search Paths
將"$(PROJECT_DIR)/01-仿QQ/Lib/XMPP/Vendor/libidn"
修改成"$(PROJECT_DIR)",並改成"recursive"
在文件頂部添加"#import <UIKit/UIKit.h>"
就是使用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的主要解析框架