
XMPPFramework開發(fā)前言
這兩天沒有更新博客,這里先對大家說聲對不起了.因為這幾天一直忙于研究XMPPFramework這個開源框架.XMPPFramework是一個OS X/iOS平臺的開源項目,使用Objective-C實現了XMPP協議,同時還提供了用于讀寫XML的工具.可以幫助我們快速的開發(fā)即時通訊功能.XMPPFramework其實以前培訓的時候也是有做過的,不過那只是一頓無腦敲,對其原理以及邏輯并沒有深入的了解.而且后期開發(fā)使用環(huán)信、融云三方開發(fā)比較多,XMPPFramework用的其實并不是很多.所以作為小白的我將在XMPPFramework這個專題中對XMPPFramework在實際使用過程中的詳細邏輯以及遇到的坑進行分享講解.希望大家關注.
XMPP以及Openfire服務器簡介
關于XMPP,它是一種基于標準通用標記語言的子集XML的協議,XMPP中定義了三個角色,客戶端,服務器,網關。通信能夠在這三者的任意兩個之間雙向發(fā)生。服務器同時承擔了客戶端信息記錄,連接管理和信息的路由功能。
如下面經典的XMPP示意圖所示.其中Client為客戶端,Server為服務器,我們可以允許多個服務器,不管是Client與Server之間,還是Server與Server之間的數據傳輸都是XML格式的數據流.

在實際開發(fā)過程中,Server的搭建并不是需要移動端開進行的.但是我們需要做前期的測試,所以搭建一個服務器還是很有必要的,這里選擇Openfire服務器,Openfire是開源的、基于可拓展通訊和表示協議(XMPP)、采用Java編程語言開發(fā)的實時協作服務器。 Openfire安裝和使用都非常簡單,并利用Web進行管理。單臺服務器可支持上萬并發(fā)用戶。那么接下來,我們就看一下如何搭建一個本地的Openfire服務器.
Openfire服務器搭建流程
由于Openfire服務器是基于java環(huán)境的,由于Openfire的版本一定要和JDK的版本對應一致,所以我們需要去Oracle官網去最新版本的JDK.然后安裝最新的JDK就好.如下圖所示.

上面我們就搭建好我們的java環(huán)境了,不過一定要記住,JDK版本要和Openfire的版本一致.接下來,我們需要去Openfire下載頁下載最新的Openfire版本了.

下載完成之后,我們安裝即可.安裝完成我們會在系統(tǒng)偏好設置找到我們安裝的JDK以及openfire服務器,如下所示.

接下來,我就需要配置我們的Openfire服務器了,我們先進入Openfire頁面啟動Openfire服務器.一開始,服務器的狀態(tài)是處于stop停止狀態(tài)的,所以我們需要手動啟動一下,讓狀態(tài)處于Running狀態(tài).

這里,Openfire服務器也可能啟動失敗,其實失敗的原因不外乎兩個,一個是沒有訪問Openfire的權限,另外一個就是java的環(huán)境變量沒有配置好,我們需要重新配置一下.所以,我們使用終端啟動我們的Openfire服務器,步驟如下所示.
- 首先,給openfire中的bin文件夾一個權限,允許所有人讀寫.
sudo chmod -R 777 /usr/local/openfire/bin
- 配置java環(huán)境變量,這里需要注意的是最后一句命令jdk的版本要輸自己的jdk的版本.我這里是1.8.0_111版本的,所以命令如下所示.
sudo su
cd /usr/local/openfire/bin
export JAVA_HOME=`/usr/libexec/java_home`
echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
- 配置好java環(huán)境變量之后,我們就啟動Openfire服務器即可,具體命令如下所示.
cd /usr/local/openfire/bin
./openfire.sh
-
在終端如下圖所示,代表著服務器啟動成功.
啟動完成之后,我們還是需要進入系統(tǒng)偏好設置進入Openfire頁面,然后點擊頁面中Open Admin Console選項,打開Openfire的web配置頁面.

(由于我已經安裝完成了,所以接下來一些配置圖并不是自己截的圖,如有侵權,請聯系我,立馬刪除)
-
首先,我們需要先選擇語言.這里我們直接選擇簡體中文就好.
-
接下來,我們需要配置我們的服務器相關的.我們因為是在本機上設置的,所以域直接寫127.0.0.1就好.其他的不用做任何修改.
-
我們光有服務器是不行的,需要一個數據庫來存儲用戶的信息以及數據.接下來是我們對數據庫進行設置,我們選擇標準數據庫連接選項.
- 選擇繼續(xù)之后,我們要設置我們的數據庫.這是我們使用MySQL數據庫即可.用戶名可以填
root,密碼不用填寫,然后其他的不用改變.
數據庫URL的修改有幾點需要注意.一個是,
[host-name]修改為127.0.0.1或者localhost,[database-name]改為數據庫名稱openfire.當然了,數據庫現在我們還沒創(chuàng)建,接下來我們就需要創(chuàng)建一個名為openfire的數據庫,二就是請全部小寫,因為url地址需要小寫,所以我們創(chuàng)建數據庫的時候,數據庫的名稱也要小寫.
- 關于數據庫的創(chuàng)建,我們使用的是XAMPP,這里我們只要往XAMPP官網下載最新的版本即可.
-
下載安裝完成之后,我們可以在我們的用用程序列表中找到XAMPP,然后打開.
-
打開應用之后,然后我們需要在應用的
Manage Servers頁面中開啟XAMPP服務器的所有服務.如下圖所示.這里會有一個坑,那就是如果你電腦上下載了MySQL數據庫,記得先把它停止運行,不然,XAMPP中的MySQL數據庫是運行不了的.
-
啟動完所有的服務之后,我們就需要去創(chuàng)建MySQL數據庫了.首先點擊
Welcome用用的首頁,然后我們點擊Go To Application按鈕,進入web管理頁面.
-
然后點擊頁面中
phpMyAdmin選項進入管理頁面.
-
然后,我們在管理頁面中選擇新建一個數據庫.
-
出現創(chuàng)建頁面,我們填入我們的數據庫名稱,這樣我們就可以創(chuàng)建成功了.
-
創(chuàng)建成功數據庫之后,我們就需要從Finder里面導出我們的MySQL數據庫,首相我們我們打開Finder,然后使用快捷鍵Shift+Cmd+G輸入文件路徑usr/local.當然了,如果找到不到文件夾路徑,那么只有一種可能,那就是Mac上的隱藏文件已經被隱藏了,這時候,我們需要開啟終端,然后輸入顯示所有文件指令:
defaults write com.apple.finder AppleShowAllFiles -bool true,然后從強制退出中重啟Finder,這樣就可以顯示所有的隱藏文件了.
-
然后,我們需要找到openfire文件夾,然后,右鍵文件夾顯示簡介,然后開啟所有權限.具體步驟如圖所示.
-
修改完權限之后,我們如下圖所示,把openfire_mysql.sql數據庫拷貝到桌面上.
-
然后我們往我們在XAMPP中新建的數據庫導入我們這個從openfire文件拿出來的數據庫.如下圖所示.
-
點擊瀏覽,我們導入我們的數據庫,其他的不用做任何修改.然后點擊"執(zhí)行"即可.
-
上面我們的數據庫已經創(chuàng)建完成了,如下圖所示(一大堆表??).
-
表格創(chuàng)建完成之后,接著回到Openfire的web配置頁面中,URL按照上面步驟填寫.點擊繼續(xù).如果報錯的話,那么就可能是大小寫的問題了,修改一下即可.接下來,我們設置我們的管理者賬號和密碼,這是我們登錄Openfire服務器的賬號密碼.
-
點擊繼續(xù),我們就完成Openfire服務器的整體搭建了.
Openfire服務器的數據管理
上面我們已經完成了Openfire服務器的搭建,接下來,我們需要登錄Openfire服務器.還是系統(tǒng)偏好設置中我們打開Openfire控制面板.然后打開Open Admin Console然后打開web控制頁面.

在下面的頁面中輸入設置的管理者賬號和密碼.

然后我們進入管理界面,我們就可以對我們的服務器進行管理了.

Openfire服務器的刪除
如果當我們不想使用了Openfire服務器的時候,我們要怎么刪除它呢?我們只需要以下幾步即可完成刪除的操作.
- 一. 打開Mac終端
- 二. 輸入
sudo rm -rf /Library/PreferencePanes/Openfire.prefPane命令之后,然后輸入管理員密碼.
- 三. 輸入
sudo rm -rf /usr/local/openfire- 四. 輸入
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist
做完上述的四步,我們就可以把Openfire服務器從我們的Mac中移除了~
結束
Openfire服務器在實際開發(fā)過程中其實并不是需要移動端開發(fā)人員進行搭建的,但是我們需要搭建一個服務器來測試XMPPFramework,所以搭建一個本地的服務器是很有必要的.搭建Openfire服務器如果遇到任何問題歡迎聯系騷棟,讓騷棟祝你一臂之力~~后期的博客,我將對XMPPFramework在具體使用過程中的步驟以及坑點進行詳細的講解說明,希望大家繼續(xù)關注騷棟,謝謝大家.





















