xmpp中最常用的框架就是 xmppframework
第一種方法直接拖
cfnetwork.framework
security.framework
libxml2.dylib
libresolv.dylib
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"
就是使用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協議學習
xmpp協議簡介 xmpp extensible messageing and presence protocol 可擴充套件訊息與存在協議 是目前主流的四種im im instant messaging,即時訊息 協議之一,其他三種分別為 即時資訊和空間協議 impp 空間和即時資訊協議 prim...
XMPP協議介紹
通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms 簡訊 msn,icq等。基本的網路形式是單客戶端通過tcp ip連線到單伺服器,然後在之上傳輸xml。客戶端利用xmpp 基於tcp i...
XMPP部分經驗
一 1 首先是呼叫viewdidload方法。2 先重新整理然後從資料庫裡面獲取所有的聊天記錄 initbubbledatas 這個方法寫在重新整理的方法裡面,每次重新整理都要呼叫 3 通過上面的方法將訊息結構轉換成聊天結構 structurebubbledataswithmessages 這個方法...