使用XMPP已經有一段時間了,但是一直都沒深入研究過,只是使用SDK做一些簡單的操作,看了許多大神的博客,自己總結一下,准備寫一系列關於XMPP的使用博客,以便於自己更加深入學習~
http://liudanking.me/arch/xmpp%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%80%89%E5%9E%8B/
協議選型:XMPP已經成為標准的IM協議。XMPP官網:http://XMPP.org/
服務器型:使用廣泛的是ejabberd,jabberd 2.x, Openfire,Tigase。從編程語言角度來看主要是JAVA和Erlang。JAVA語言的優勢是類庫完備,容易招人。Erlang的優勢是hot code swap,live console, 高並發。而且ejabberd是對XMPP協議支持最好、實現最為全面的server。因此企業在不考慮獨立開發服務器的情況下,初期選型基本建議采用ejabberd。
本文我們主要實踐iOS端流程,不考慮太多服務器實現,因為Openfire易安裝,插件功能豐富,我們使用Openfire
因為服務器需要數據庫支撐,所以我們在搭建Openfire前要先搭建數據庫。
我們先去MySQL官網去下載MySQL的安裝包,如下圖所示:
下載完後,開始安裝MySQL如下圖:
注意事項:因為安裝完MySQL<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPrrzy/y74dfUtq+4+MTjyfqzydK7uPbD3MLro6zL+dLUxOPSqrGjtOa6w9XiuPbD3MLro6y688Pm0N64xMPcwuu1xMqxuvK74dPDtb2jrMjnz8LNvMv5yr6jujwvcD4NCjxwPjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20160918/20160918092132530.png" title="\" />
首先在設置裡面找到MySQL的啟動按鈕,啟動MySQL服務,如下圖:
然後需要將MySQL的指令重新定義一下,因為MySQL的指令集在/usr/local/mysql/bin/mysql路徑下,需要執行一下命令行:
# 定義mysql別名
alias mysql=/usr/local/mysql/bin/mysql
# mysqladmin
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
修改MySQL賬戶密碼
之前安裝完成後系統給我們了一個默認的密碼,因為那個密碼很繁瑣不容易記住,所以我們需要重新設置一個密碼,我們先輸入如下指令設置新密碼,”newpassword”為你要設置的新密碼:
mysqladmin -u root -p password "newpassword"
#然後 Enter password: 【輸入原來的密碼】
如下圖所示表示密碼修改成功:
完成後以後root賬戶需要密碼就用你新設置的密碼就行了~
連接數據庫,創建Openfire數據庫
# 連接數據庫
mysql -u root -p
# 創建Openfire數據庫
create database openfire;
完全卸載MySQL
在系統內存不夠時有時候我們會需要刪除掉MySQL,一下就是刪除MySQL的方法:
從 Yosemite 系統開始,
/etc/hostconfig 這個文件已經移除,所以 Yosemite 後的系統可以忽略下面的命令
sudo nano /etc/hostconfig
然後以下是終端執行代碼:
sudo rm -rf /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo nano /etc/hostconfig (復制前面部分回車,然後刪掉這一行: MYSQLCOM=-YES-,control+O回車保存,control+X退出編輯界面)
sudo rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
MAC上搭建Openfire
下載並安裝openfire
去jsp">openfire官網上去下載相應的包:
雙擊進行傻瓜式的安裝就好了,安裝完畢後會在系統偏好設置裡面找到openfire的啟動器
點擊Openfire會進入啟動頁面
點擊Open Admin Console進入浏覽器設置頁面,語言選擇簡體中文
接著設置服務器的名字
鏈接數據庫
注意裡面的用戶名和密碼是你數據庫的用戶名和密碼,用戶名一般是root,密碼是你之前重新設置的密碼~~~
然後一直繼續就OK了,最後需要我們登錄到openfire
密碼就是之前設置的密碼
openfire啟動失敗解決辦法
當你發現你的電腦上的openfire無論你是重新安裝還是重啟都無法啟動的情況下你可以按照我下面寫的那些終端指令來啟動你的openfire不用再去重新做你的系統了.
一般你發現你的openfire打開出現這樣的窗口後你就可以想到你的openfire出問題了,極個別的時候你可以通過重新安裝來解決.
如果大家的問題重新安裝後沒有解決那就試下我下面的方法.
先打開自己電腦上的終端然後輸入以下指令:
// 獲取權限
sudo chmod -R 777 /usr/local/openfire/bin
cd /usr/local/openfire/bin
export JAVA_HOME=`/usr/libexec/java_home` # 記住這裡不是單引號而是英文下數字1左邊的按鍵.
echo $JAVA_HOME
# 終端上打印的內容 /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
cd /usr/local/openfire/bin
./openfire.sh
# 終端上打印的內容
# Openfire 4.0.3 [Sep 16, 2016 4:19:21 PM]
# Admin console listening at http://wangchongleidemacbook-air.local:9090
一般你輸入完成這些指令後你再打開你的openfire就會發現這樣的情況.
安裝openfire後admin無法登錄管理控制平台
解決方案如下:
使用Mysql查看工具進入數據庫,進入表“ofuser”,將該表清空,然後執行SQL 語句
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate) VALUES ('admin', 'admin', 'Administrator', '[email protected]', '0', '0');
關閉openfire服務,就是從其控制台stop然後再start,再用用戶名:admin,密碼:admin登錄即可.
徹底刪除openfire服務器的
首先,確保你已經關掉了openfire
打開終端 (在應用程序–>實用工具–>)
輸入以下命令
sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
sudo rm -rf /usr/local/openfire
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist
第一條會讓你輸入管理員密碼,盡管你輸入的時候,終端不會顯示,不必擔心,正確輸入後按回車,它就執行了。
三條命令以後,openfire就徹底消失了.但是需要重啟一下系統偏設置。
總結
配置過程還是比較繁瑣的,一共需要好幾個步驟,需要裝的有MySQL、JAVA環境和openfire,裡面有一步沒做好都沒法使用,自己完整配置下來也花了很長時間,大家如果有什麼問題可以留言問我,謝謝大家的閱讀~~