Flex:基於XMPP協議的IM程序開發

名詞解釋:

1. XMPP:(eXtensible Messaging and Presence Protocol) 可擴展消息處理現場協議,是基於可擴展標記語言(XML)的協議,它用於即時消息(IM)以及在線現場探測。XMPP的前身是Jabber,一個開源形式組織產生的網絡即時通信協議。XMPP目前被IETF國際標準組織完成了標準化工作。是目前主流的四種IM(IM:instant messaging,即時消息)協議之一,其他三種分別爲:IMPP、PRIM、SIP(SIMPLE)。

      XMPP中定義了三個角色,客戶端,服務器,網關。通信能夠在這三者的任意兩個之間雙向發生。服務器同時承擔了客戶端信息記錄,連接管理和信息的路由功能。網關承擔着與異構即時通信系統的互聯互通,異構系統可以包括SMS(短信),MSN,ICQ等。基本的網絡形式是單客戶端通過TCP/IP連接到單服務器,然後在之上傳輸XML。

      那麼XMPP通過TCP傳什麼了?傳輸的是與即時通訊相關的指令。在以前這些命令要麼用2進制的形式發送(比如QQ),要麼用純文本指令加空格加參數加換行苻的方式發送(比如MSN)。而XMPP傳輸的即時通訊指令的邏輯與以往相仿,只是協議的形式變成了XML格式的純文本。這不但使得解析容易了,人也容易閱讀了,方便了開發和查錯。而XMPP的核心部分就是一個在網絡上分片斷髮送XML的流協議。這個流協議是XMPP的即時通訊指令的傳遞基礎,也是一個非常重要的可以被進一步利用的網絡基礎協議。所以可以說,XMPP用TCP傳的是XML流。  

 

2. XIFF:(XMPP Implementation For Flash),一個ActionScript的XMPP類庫。XIFF2.0是用AS2寫的,而新發布的XIFF3.0則是基於AS3的,下載地址:http://www.igniterealtime.org/projects/xiff/index.jsp 。

3. Openfire(原來的Wildfire)是一個跨平臺,採用Java開發,開源的實時協作(RTC)服務器,基於XMPP(Jabber)協議。您可以使用它輕易的構建高效率的即時通信服務器。Openfire安裝和使用都非常簡單,並利用Web進行管理。單臺服務器可支持上萬併發用戶。下載地址:http://www.igniterealtime.org/projects/openfire/index.jsp 。

程序架構:

服務器端:Openfire

Openfire服務器的安裝非常簡單,具體看安裝手冊:http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/install-guide.html 。

安裝在本機的Openfire啓動後,可以通過http://localhost:9090管理服務器。

 

客戶端:Flex

開發工具:Flash Builder 4 (即原先的Flex Builder)

開發語言:MXML語言和ActionScript腳本語言

      MXML是一個可以讓你在Adobe Flex中佈局用戶界面組件的一種XML語言。你也可以使用MXML聲明來定義程序中的非可視化組件,比如:對服務器端數據源的訪問以及用戶界面組件和數據源之間的數據綁定。 MXML標籤與ActionScript類或者類中的屬性是相對應的。當你編譯你的Flex應用程序的時候,Flex解析你的MXML標籤並且生成相應的 ActionScript類。然後這些ActionScript類會被編譯成SWF字節碼存儲到一個SWF文件中。

      ActionScript是Flash的腳本語言,它在 Flash 內容和應用程序中實現了交互性、數據處理以及其它許多功能。新出的ActionScript 3.0是Flash編程語言的一次重大升級,它更加高效、清晰和完善,而且使用的是OOP(面對對象編程)模型。隨着 Web 應用程序項目需求的增長,也要求 ActionScript 引擎有重大的突破。ActionScript 3 引入了一個新的高度優化的 ActionScript Virtual Machine(AVM2),與 AVM1 相比,AVM2 的性能有了顯著的提高。這使 ActionScript 3 代碼的執行速度幾乎比以前的 ActionScript 代碼快了 10 倍。Flash Player 9 中包含 AVM2(ActionScript 3.0 的腳本語言引擎),設計它的目的是提供互聯網應用程序開發人員所需的性能和特性。爲了向後兼容現有的內容,Flash Player 將繼續支持 AVM1。

      一般來說,MXML語言用於應用程序界面的設計,而ActionScript語言用於實現業務邏輯。

      關於更爲詳細的MXML語言和ActionScript語言在應用程序開發中混合使用的用法,請參見:【後續填補】。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章