黑馬2014ios培訓基礎(chǔ)就業(yè)班2014年7月-1201.xmpp_第1頁
黑馬2014ios培訓基礎(chǔ)就業(yè)班2014年7月-1201.xmpp_第2頁
黑馬2014ios培訓基礎(chǔ)就業(yè)班2014年7月-1201.xmpp_第3頁
黑馬2014ios培訓基礎(chǔ)就業(yè)班2014年7月-1201.xmpp_第4頁
黑馬2014ios培訓基礎(chǔ)就業(yè)班2014年7月-1201.xmpp_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、XMPP 基礎(chǔ)講師:Vincent_Guo即時通訊技術(shù)簡介即時通訊技術(shù)(IM - Instant Messaging)支持用戶在線實時交談。如果要發(fā)送一條信息,用戶需要打開一個小窗口,以便讓用戶及其朋友在其中輸入信息并讓交談雙方都看到交談的內(nèi)容有許多的IM系統(tǒng),如AOL、Yahoo IM、 MSN以及QQ,它們最大的區(qū)別在于各自通訊協(xié)議的實現(xiàn),所以即時通訊技術(shù)的核心在于它的傳輸協(xié)議協(xié)議用來說明信息在網(wǎng)絡上如何傳輸,如果有了統(tǒng)一的傳輸協(xié)議,那么應當可以實現(xiàn)各個IM之間的直接通訊,為了創(chuàng)建即時通訊的統(tǒng)一標準,目前已經(jīng)出現(xiàn)過的IM協(xié)議包括:IETF的對話初始協(xié)議(SIP)和即時通訊對話初始協(xié)議和表示

2、擴展協(xié)議(SIMPLE)、應用交換協(xié)議(APEX)、顯示和即時通訊協(xié)議(PRIM)及基于XML且開放的可擴展通訊和表示協(xié)議(XMPP)協(xié)議(常稱為 Jabber 協(xié)議)人們多次努力,試圖統(tǒng)一各大主要IM供應商的標準(AOL、Yahoo 及 Microsoft),但無一成功,且每一種IM仍然繼續(xù)使用自己所擁有的協(xié)議itcast登錄的命令:發(fā)送消息指令qqXMPP誕生的由來 C1C2 shangsanlisi都是遵守XMPP即時通訊協(xié)議設(shè)計一款全世界都使用的即時通訊協(xié)議,無論使用什么即時通訊軟件,都可以互聯(lián)互通 XMPP起源XMPP是基于XML的協(xié)議,用于即時消息(IM)以及在線現(xiàn)場探測。最初,X

3、MPP作為一個框架開發(fā),目標是支持企業(yè)環(huán)境內(nèi)的即時消息傳遞和聯(lián)機狀態(tài)應用程序。XMPP前身是Jabber(1998年),是一個開源組織定義的網(wǎng)絡即時通信協(xié)議XMPP是一個分散型通信網(wǎng)絡,這意味著,只要網(wǎng)絡基礎(chǔ)設(shè)施允許,任何XMPP用戶都可以向其他任何XMPP用戶傳遞消息。多個XMPP服務器也可以通過一個專門的“服務器-服務器”協(xié)議相互通信,提供了創(chuàng)建分散型社交網(wǎng)絡和協(xié)作框架的可能性盡管XMPP的出現(xiàn)是為了滿足“個人-個人”即時消息傳遞的要求,但它完全不必局限于此任務XMPP概述XMPP是一種基于XML的協(xié)議,它繼承了在XML環(huán)境中靈活的發(fā)展性。這表明XMPP是可擴展的。可以通過發(fā)送擴展的信息來

4、處理用戶的需求,以及在 XMPP的頂端建立如內(nèi)容發(fā)布系統(tǒng)和基于地址的服務等應用程序。而且,XMPP包含了針對服務器端的軟件協(xié)議,使之能與另一個進行通話,這使得開發(fā)者更容易建立客戶應用程序或給一個配置好的系統(tǒng)添加功能XMPP的核心XML流傳輸協(xié)議的定義使得XMPP能夠在一個比以往網(wǎng)絡通信協(xié)議更規(guī)范的平臺上。借助于XML易于解析和閱讀的特性,使得XMPP的協(xié)議能夠非常漂亮XMPP的即時通訊擴展應用部分是根據(jù)IETF在這之前對即時通訊的一個抽象定義的,與其他業(yè)已得到廣泛使用的即時通訊協(xié)議,諸如AIM,QQ等有功能完整,完善等先進性XMPP的擴展協(xié)議Jingle使得其支持語音和視頻,目前iOS尚不支持

5、XMPP的官方文檔是RFC 3920XMPP協(xié)議曾經(jīng)是Google力推的即時通信協(xié)議,其代表作品是GTalkGoogle Talk(GTalk)Google Talk是Google的IM工具,除了具有IM功能外,另外還加上了Voip功能,“界面清新大方”,可直接鏈接Gmail,接受查看郵件由于Google Talk是基于Jabber開源標準,這種標準允許用戶和其它的即時訊息系統(tǒng)相連,比如蘋果電腦的iChat,GAIM,Trillian Pro以及Psi。Google Talk只能夠在Windows平臺上運行Google Talk的用戶無法使用這種軟件與AIM,MSN Messenger或者雅虎

6、Messenger的用戶進行互通GTalk界面截圖GTalk即將退出歷史舞臺2013年5月,在Google I/O大會上,Google推出統(tǒng)一跨平臺聊天應用Hangouts(環(huán)聊)取代Google TalkGoogle Hangouts不支持XMPP協(xié)議。Google Hangouts用戶與非Google服務如XMPP協(xié)議的強有力支持者 之間的交流無法進行目前,Google Wave是基于XMPP協(xié)議的,并且Google還開發(fā)Jingle擴展進行基于XMPP協(xié)議的視頻聊天。盡管Google尚未宣布Talk的關(guān)閉日期,不過從Google關(guān)閉Reader和iCal支持來看,Talk關(guān)閉之日不會太遠

7、Google Hangouts宣傳截圖XMPP定義XMPP:The Extensible Messaging and Presence Protocol(可擴展通訊和表示協(xié)議)XMPP可用于服務類實時通訊、表示和需求響應服務中的XML數(shù)據(jù)元流式傳輸。XMPP以Jabber協(xié)議為基礎(chǔ),而Jabber是即時通訊中常用的開放式協(xié)議XMPP是基于XML的協(xié)議,用于即時消息(IM)以及在線現(xiàn)場探測。促進服務器之間的準即時操作。這個協(xié)議可能最終允許因特網(wǎng)用戶向因特網(wǎng)上的其他任何人發(fā)送即時消息,即使其操作系統(tǒng)和瀏覽器不同XMPP的基本結(jié)構(gòu)XMPP是一個典型的C/S架構(gòu),而不是像大多數(shù)即時通訊軟件一樣,使用P

8、2P客戶端到客戶端的架構(gòu),也就是說在大多數(shù)情況下,當兩個客戶端進行通訊時, 他們的消息都是通過服務器傳遞的。采用這種架構(gòu),主要是為了簡化客戶端,將大多數(shù)工作放在服務器端進行XMPP中定義了三個角色,客戶端,服務器,網(wǎng)關(guān)。通信能夠在這三者的任意兩個之間雙向發(fā)生服務器同時承擔了客戶端信息記錄,連接管理和信息的路由功能網(wǎng)關(guān)承擔著與異構(gòu)即時通信系統(tǒng)的互聯(lián)互通,異構(gòu)系統(tǒng)可以包括SMS(短信),MSN,ICQ等基本的網(wǎng)絡形式是單客戶端通過TCP/IP連接到單服務器,然后在之上傳輸XML流C/S 客戶端/服務端ServerClient1Client2QQServerqq1qq2C/S 服務器壓力比較重P/P

9、 點對點P/P 服務器的壓力比較小XMPP工作原理節(jié)點連接到服務器服務器利用本地目錄系統(tǒng)中的證書對其認證節(jié)點指定目標地址,讓服務器告知目標狀態(tài)服務器查找、連接并進行相互認證節(jié)點之間進行交互clientServer QQ網(wǎng)關(guān)XMPP工作原理示意圖XMPP ClientXMPP ClientXMPP ServerDNS ServerXMPP ServerOther ServerXMPP ClientXMPP ClientXml流Protocol Gateway傳輸內(nèi)容XMPP應用傳輸?shù)氖桥c即時通訊相關(guān)的指令。在以前這些命令要么用二進制的形式發(fā)送(比如QQ),要么用純文本指令加空格加參數(shù)加換行符的方

10、式發(fā)送(比如MSN)而XMPP傳輸?shù)募磿r通訊指令的邏輯與以往相仿,只是協(xié)議的形式變成了XML格式的純文本。這不但使得解析容易了,人也容易閱讀了,方便了開發(fā)和查錯而XMPP的核心部分就是一個在網(wǎng)絡上分片段發(fā)送XML的流協(xié)議。這個流協(xié)議是XMPP的即時通訊指令的傳遞基礎(chǔ),也是一個非常重要的可以被進一步利用的網(wǎng)絡基礎(chǔ)協(xié)議,可以說XMPP用TCP傳的是XML流XMPP的優(yōu)缺點優(yōu)點開放標準(XMPP的技術(shù)規(guī)格已被定義在RFC 3920及RFC 3921)證實可用,谷歌證實了GTalk分散安全可擴展缺點數(shù)據(jù)負載過重XML沒有二進制傳輸XMPP的傳輸小結(jié)XMPP是一種類似于HTTP協(xié)議的一種數(shù)據(jù)傳輸協(xié)議,其

11、過程就如同“解包裝-包裝”的過程。只需要理解其接收的類型及返回的類型,便可以很好的利用XMPP來進行數(shù)據(jù)通訊XMPP官方網(wǎng)站 即時通訊軟件(XMPP)服務器(openfire)也是要基于xmpp實現(xiàn)客戶端基于xmpp開發(fā)iphone 客戶端基于xmpp開發(fā)使用xmppframwork框架開發(fā)數(shù)據(jù)庫mysqloracalSUN公司SQLServerDB2服務器搭建安裝MySQL啟動MySQL服務器設(shè)置MySQL命令行搜索路徑打開終端,輸入:sudo vi /.bash_profile輸入 i然后粘貼以下內(nèi)容# mysqlalias mysql=/usr/local/mysql/bin/mysql

12、alias mysqladmin=/usr/local/mysql/bin/mysqladmin# lsalias ls=ls -G按ESC鍵輸入 :wq重新啟動終端程序修改MySQL的管理員密碼mysqladmin -u root password 123456徹底刪除MySQL的方法先停止所有mysql有關(guān)進程sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf sudo rm -rf /Library/PreferencePanes/My*sudo vi /etc/hostconfig # removed the

13、 line =-YES-rm -rf /Library/PreferencePanes/My*sudo rm -rf /Library/Receipts/mysql*sudo rm -rf /Library/Receipts/MySQL*sudo rm -rf .mysql.*安裝MySQL管理工具mysql-workbench建立數(shù)據(jù)庫連接(1)建立數(shù)據(jù)庫連接(2)建立數(shù)據(jù)庫連接(3)建立數(shù)據(jù)庫連接(4)創(chuàng)建openfire數(shù)據(jù)庫(5)創(chuàng)建openfire數(shù)據(jù)庫(6)創(chuàng)建openfire數(shù)據(jù)庫(7)顯示隱藏文件在終端中輸入以下命令,可以切換隱藏文件的顯示顯示隱藏文件defaults writ

14、e com.apple.finder AppleShowAllFiles Yes & killall Finder不顯示隱藏文件defaults write com.apple.finder AppleShowAllFiles No & killall Finder提示:在OS X 10.9 Mavericks需要將Finder修改成finder才行,第一個字母換成小寫的f以上命令類似與在iOS開發(fā)中的NSUserDefaults standardUserDefaults setBool:YES forKey:com.apple.finder;服務器搭建Openfire可用服務器地址: 課程選

15、用:OpenfireOpenfire簡介采用Java開發(fā),開源的實時協(xié)作(RTC)服務器,基于XMPP(Jabber)協(xié)議安裝Openfire之前,需要確認是否安裝了JDK如果沒有,需要安裝jdk-7u45-macosx-x64可以輕易的構(gòu)建高效率的即時通信服務器安裝和使用簡單,并利用Web進行管理單臺服務器可支持上萬(1000)并發(fā)用戶Openfire安裝下載并安裝: 安裝位置:/usr/local/openfire/安裝位置該文件夾的用戶訪問權(quán)限數(shù)據(jù)庫腳本保存在/usr/local/openfire/resources/database文件夾下修改/usr/local/openfire/目

16、錄權(quán)限設(shè)置openfire數(shù)據(jù)庫將 /usr/local/openfire/resources/database/openfire_mysql.sql 復制到桌面在MySQLWorkbench,導入該文件并執(zhí)行執(zhí)行角本文件數(shù)據(jù)庫表結(jié)構(gòu)Openfire設(shè)置在系統(tǒng)偏好中確保Openfire服務已經(jīng)啟動使用瀏覽器訪問: 如果需要重新配置,可以修改/usr/local/openfire/conf/openfire.xml,將末尾的true修改為false即可:重新設(shè)置Openfire不會影響已經(jīng)設(shè)置好的用戶信息,只是在忘記管理員密碼是重新設(shè)置即可。設(shè)置語言設(shè)置服務器(注意域名)選擇數(shù)據(jù)庫連接方式設(shè)置數(shù)

17、據(jù)庫設(shè)置管理員密碼不要跳過!配置完成并登錄Openfire服務器端口新建用戶客戶端設(shè)置測試Openfire服務器XMPPJID每個 XMPP客戶端用戶必須擁有一個全局惟一標識符?;跉v史原因,這些標識符稱為 Jabber ID或JID。鑒于協(xié)議的分布式特征,JID應包含聯(lián)系用戶所需的所有信息,JID的結(jié)構(gòu)類似于電子郵件地址,但不要求 JID同時也是有效的電子郵件收件人客戶端和服務器節(jié)點,被統(tǒng)稱為 XMPP實體,都擁有JID。例如:SomeCorp公司的員工 John Doe可能擁有JID: ,其中 是 SomeCorp公司的XMPP服務器的地址,John.Doe是John Doe的用戶名還可以

18、使用JID連接到其他資源。這允許在一個XMPP實體標識符之外進一步處理拓展支持XMPP協(xié)議的客戶端SparkAdium服務器及客戶端安裝練習體會XMPP目前所能支持的功能并且構(gòu)思即將開發(fā)的XMPP項目所能包含的功能iOS的XMPP框架XMPPFramework 其他語言可用框架地址: 課程選用:XMPPFramework,唯一可用的OC框架導入XMPPFramework框架(1)下載XMPPFramework框架: git clonegit clone .git導入依賴框架CocoaLumberjack:日志框架CocoaAsyncSocket:底層網(wǎng)絡框架,實現(xiàn)異步Socket網(wǎng)絡通訊需要添

19、加CFNetwork&Security框架依賴KissXML:XML解析框架需要添加libxml2.dylib框架依賴需要指定如下編譯選項:Other Linker Flags = -lxml2Header Search Paths = /usr/include/libxml2libidn設(shè)置XML頭文件搜索路徑設(shè)置其他鏈接標記導入XMPPFramework框架(2)將以下4個文件夾導入到項目AuthenticationCategoriesCoreUtilities另外還需要添加libresolv.dylib依賴導入XMPPFramework框架(3)導入XMPP擴展框架Extensions將

20、Sample_XMPPFramework.h添加到項目,并且重命名為XMPPFramework.h在終端輸入:git commit -m “添加XMPP框架”可以一次性提交所有增加的文件XMPP框架常用擴展XEP-0045: 多用戶聊天XEP-0060: 發(fā)布-訂閱XEP-0065: SOCKS5字節(jié)流XEP-0085: 聊天狀態(tài)通知XEP-0096: 文件傳輸XEP-0172: 用戶昵稱XEP-0184: 消息送達CoreDataStorage: 數(shù)據(jù)存儲Reconnect:重新連接Roster:花名冊 新建項目并導入XMPP框架練習熟練掌握XMPP框架的導入過程并且構(gòu)思即將開發(fā)的XMPP項

21、目所能包含的功能CocoaLumberjack是一款高性能的日志輸出插件需要配合XcodeColors插件一起使用 Common.h#import DDLog.h#import DDTTYLogger.h#ifdef DEBUGstatic const int ddLogLevel = LOG_LEVEL_VERBOSE;#elsestatic const int ddLogLevel = LOG_LEVEL_OFF;#endif應用程序啟動后設(shè)置跟蹤級別DDLog addLogger:DDTTYLogger sharedInstance;DDTTYLogger sharedInstance

22、setColorsEnabled:YES;DDTTYLogger sharedInstance setForegroundColor:UIColor blueColor backgroundColor:nil forFlag:LOG_FLAG_INFO;DDLogError(錯誤信息);DDLogWarn(警告信息);DDLogInfo(提示信息);DDLogVerbose(詳細信息);XMPP核心文件XMPPStream:是開發(fā)過程中最主要交互的類,所有擴展和自定義代碼均要基于此類進行XMPPParser:供XMPPStream解析使用XMPPJID:提供了一個不可變JID的實現(xiàn),遵守NSCopying協(xié)議和NSCoding協(xié)議XMP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論