XMPPFramework開發前言
這兩天沒有更新部落格,這裡先對大家說聲對不起了.因為這幾天一直忙於研究XMPPFramework這個開源框架.XMPPFramework是一個OS X/iOS平臺的開源專案,使用Objective-C實現了XMPP協議,同時還提供了用於讀寫XML的工具.可以幫助我們快速的開發即時通訊功能.XMPPFramework其實以前培訓的時候也是有做過的,不過那只是一頓無腦敲,對其原理以及邏輯並沒有深入的瞭解.而且後期開發使用環信、融雲三方開發比較多,XMPPFramework用的其實並不是很多.所以作為小白的我將在XMPPFramework這個專題中對XMPPFramework在實際使用過程中的詳細邏輯以及遇到的坑進行分享講解.希望大家關注.
XMPP以及Openfire伺服器簡介
關於XMPP,它是一種基於標準通用標記語言的子集XML的協議,XMPP中定義了三個角色,客戶端,伺服器,閘道器。通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。
如下面經典的XMPP示意圖所示.其中Client為客戶端,Server為伺服器,我們可以允許多個伺服器,不管是Client與Server之間,還是Server與Server之間的資料傳輸都是XML格式的資料流.
在實際開發過程中,Server的搭建並不是需要移動端開進行的.但是我們需要做前期的測試,所以搭建一個伺服器還是很有必要的,這裡選擇Openfire伺服器,Openfire是開源的、基於可擴充通訊和表示協議(XMPP)、採用Java程式語言開發的實時協作伺服器。 Openfire安裝和使用都非常簡單,並利用Web進行管理。單臺伺服器可支援上萬併發使用者。那麼接下來,我們就看一下如何搭建一個本地的Openfire伺服器.
Openfire伺服器搭建流程
由於Openfire伺服器是基於java環境的,由於Openfire的版本一定要和JDK的版本對應一致,所以我們需要去Oracle官網去最新版本的JDK.然後安裝最新的JDK就好.如下圖所示.
上面我們就搭建好我們的java環境了,不過一定要記住,JDK版本要和Openfire的版本一致.接下來,我們需要去Openfire下載頁下載最新的Openfire版本了.
下載完成之後,我們安裝即可.安裝完成我們會在系統偏好設定找到我們安裝的JDK以及openfire伺服器,如下所示.
接下來,我就需要配置我們的Openfire伺服器了,我們先進入Openfire頁面啟動Openfire伺服器.一開始,伺服器的狀態是處於stop停止狀態的,所以我們需要手動啟動一下,讓狀態處於Running狀態.
這裡,Openfire伺服器也可能啟動失敗,其實失敗的原因不外乎兩個,一個是沒有訪問Openfire的許可權,另外一個就是java的環境變數沒有配置好,我們需要重新配置一下.所以,我們使用終端啟動我們的Openfire伺服器,步驟如下所示.
- 首先,給openfire中的bin資料夾一個許可權,允許所有人讀寫.
1sudo chmod -R 777 /usr/local/openfire/bin - 配置java環境變數,這裡需要注意的是最後一句命令jdk的版本要輸自己的jdk的版本.我這裡是1.8.0_111版本的,所以命令如下所示.
1sudo su
1cd /usr/local/openfire/bin
1export JAVA_HOME=`/usr/libexec/java_home`
1echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
- 配置好java環境變數之後,我們就啟動Openfire伺服器即可,具體命令如下所示.
1cd /usr/local/openfire/bin
1./openfire.sh
- 在終端如下圖所示,代表著伺服器啟動成功.
啟動完成之後,我們還是需要進入系統偏好設定進入Openfire頁面,然後點選頁面中Open Admin Console選項,開啟Openfire的web配置頁面.
(由於我已經安裝完成了,所以接下來一些配置圖並不是自己截的圖,如有侵權,請聯絡我,立馬刪除)
- 首先,我們需要先選擇語言.這裡我們直接選擇簡體中文就好.
- 接下來,我們需要配置我們的伺服器相關的.我們因為是在本機上設定的,所以域直接寫127.0.0.1就好.其他的不用做任何修改.
- 我們光有伺服器是不行的,需要一個資料庫來儲存使用者的資訊以及資料.接下來是我們對資料庫進行設定,我們選擇標準資料庫連線選項.
- 選擇繼續之後,我們要設定我們的資料庫.這是我們使用MySQL資料庫即可.使用者名稱可以填
root
,密碼不用填寫,然後其他的不用改變.資料庫URL的修改有幾點需要注意.一個是,
[host-name]
修改為127.0.0.1
或者localhost
,[database-name]
改為資料庫名稱openfire
.當然了,資料庫現在我們還沒建立,接下來我們就需要建立一個名為openfire
的資料庫,二就是請全部小寫,因為url地址需要小寫,所以我們建立資料庫的時候,資料庫的名稱也要小寫.
- 關於資料庫的建立,我們使用的是XAMPP,這裡我們只要往XAMPP官網下載最新的版本即可.
- 下載安裝完成之後,我們可以在我們的用用程式列表中找到XAMPP,然後開啟.
- 開啟應用之後,然後我們需要在應用的
Manage Servers
頁面中開啟XAMPP伺服器的所有服務.如下圖所示.這裡會有一個坑,那就是如果你電腦上下載了MySQL資料庫,記得先把它停止執行,不然,XAMPP中的MySQL資料庫是執行不了的. - 啟動完所有的服務之後,我們就需要去建立MySQL資料庫了.首先點選
Welcome
用用的首頁,然後我們點選Go To Application
按鈕,進入web管理頁面. - 然後點選頁面中
phpMyAdmin
選項進入管理頁面. - 然後,我們在管理頁面中選擇新建一個資料庫.
- 出現建立頁面,我們填入我們的資料庫名稱,這樣我們就可以建立成功了.
- 建立成功資料庫之後,我們就需要從Finder裡面匯出我們的MySQL資料庫,首相我們我們開啟Finder,然後使用快捷鍵Shift+Cmd+G輸入檔案路徑usr/local.當然了,如果找到不到資料夾路徑,那麼只有一種可能,那就是Mac上的隱藏檔案已經被隱藏了,這時候,我們需要開啟終端,然後輸入顯示所有檔案指令:
defaults write com.apple.finder AppleShowAllFiles -bool true
,然後從強制退出中重啟Finder,這樣就可以顯示所有的隱藏檔案了. - 然後,我們需要找到openfire資料夾,然後,右鍵資料夾顯示簡介,然後開啟所有許可權.具體步驟如圖所示.
- 修改完許可權之後,我們如下圖所示,把openfire_mysql.sql資料庫拷貝到桌面上.
- 然後我們往我們在XAMPP中新建的資料庫匯入我們這個從openfire檔案拿出來的資料庫.如下圖所示.
- 點選瀏覽,我們匯入我們的資料庫,其他的不用做任何修改.然後點選”執行”即可.
- 上面我們的資料庫已經建立完成了,如下圖所示(一大堆表?).
- 表格建立完成之後,接著回到Openfire的web配置頁面中,URL按照上面步驟填寫.點選繼續.如果報錯的話,那麼就可能是大小寫的問題了,修改一下即可.接下來,我們設定我們的管理者賬號和密碼,這是我們登入Openfire伺服器的賬號密碼.
- 點選繼續,我們就完成Openfire伺服器的整體搭建了.
Openfire伺服器的資料管理
上面我們已經完成了Openfire伺服器的搭建,接下來,我們需要登入Openfire伺服器.還是系統偏好設定中我們開啟Openfire控制皮膚.然後開啟Open Admin Console然後開啟web控制頁面.
在下面的頁面中輸入設定的管理者賬號和密碼.
然後我們進入管理介面,我們就可以對我們的伺服器進行管理了.
結束
Openfire伺服器在實際開發過程中其實並不是需要移動端開發人員進行搭建的,但是我們需要搭建一個伺服器來測試XMPPFramework,所以搭建一個本地的伺服器是很有必要的.搭建Openfire伺服器如果遇到任何問題歡迎聯絡騷棟,讓騷棟祝你一臂之力~~後期的部落格,我將對XMPPFramework在具體使用過程中的步驟以及坑點進行詳細的講解說明,希望大家繼續關注騷棟,謝謝大家.