基于XMPP構(gòu)建的iOS即時(shí)通訊項(xiàng)目

前言:

項(xiàng)目中經(jīng)常用到環(huán)信、融云、騰訊云的即時(shí)通訊的第三方的SDK,自己也很好奇這些SDK內(nèi)部的實(shí)現(xiàn)原理,自己閑來無事也會去找一些文檔去了解XMPP搭建即時(shí)通訊的技術(shù),奈何道行太淺,一直不敢去動手做這個東西。最近公司項(xiàng)目不急,也就有了時(shí)間去折騰這些東西了。

環(huán)境的搭建:

一臺裝有java環(huán)境的mac

java環(huán)境的安裝包可以自行在網(wǎng)上百度下載。附上百度經(jīng)驗(yàn)鏈接http://jingyan.baidu.com/article/e4d08ffdb7a8050fd2f60df1.html

XAMPP ?配置數(shù)據(jù)庫和服務(wù)器環(huán)境,百度下載傻瓜式安裝即可。

安裝完成后開啟所有服務(wù),如MySQL Database 無法啟動在終端中輸入命令行 sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start ?(純手打,可能會打錯,懶得去查了,你輸入如果還是不行就去百度一下吧) 執(zhí)行完成重新開啟服務(wù)即可。

開啟完畢后點(diǎn)擊 Go To Application 按鈕跳轉(zhuǎn)到網(wǎng)頁跳轉(zhuǎn)的網(wǎng)頁,點(diǎn)擊右上角phpMyAdmin ,我沒有具體去標(biāo)注具體的點(diǎn)擊按鈕,如下圖

進(jìn)入phpMyAdmin后點(diǎn)擊新建數(shù)據(jù)庫創(chuàng)建Openfire 數(shù)據(jù)庫, 創(chuàng)建完成后在finder中右鍵前往文件輸入路徑 ?/usr/local/openfire/resources/database回車會進(jìn)入文件夾找到?openfire_mysql.sql 文件(注意usr是隱藏文件夾),然后拖到桌面?zhèn)溆谩#ㄟM(jìn)入openfire 文件夾前需要把文件夾修改成讀寫狀態(tài),如下圖)


openfire_mysql.sql文件找到以后回到數(shù)據(jù)庫網(wǎng)頁,點(diǎn)擊導(dǎo)入,把openfire_mysql.sql數(shù)據(jù)庫導(dǎo)入,然后點(diǎn)擊執(zhí)行,如下圖

Openfire 軟件。附上官網(wǎng)下載地址?http://www.igniterealtime.org/projects/openfire/

下載完成以后安裝(附上無法啟動服務(wù)的解決鏈接http://blog.csdn.net/winer888/article/details/49886281)會出現(xiàn)第一次安裝后能夠啟動服務(wù)器,但是電腦重啟后就無法啟動服務(wù)器,并且報(bào)錯,解決辦法鏈接里有,大致分為兩點(diǎn):安裝更新Java環(huán)境、按照順序在命令行中輸入

1. sudo chmod -R 777 /usr/local/openfire/bin????##來取得文件夾權(quán)限

a:sudo su

b: cd /usr/local/openfire/bin

c:export JAVA_HOME=$(/usr/libexec/java_home)

d:echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home

e:?? cd /usr/local/openfire/bin

f:?? ./openfire.sh

即可解決

安裝完成后在設(shè)置中打開會出現(xiàn)上圖頁面,狀態(tài)是Running ?點(diǎn)擊Open Admin Console 按鈕跳轉(zhuǎn)網(wǎng)頁

選擇中文語言,點(diǎn)擊繼續(xù)

域名修改為本地127.0.0.1(只限本地測試)點(diǎn)擊繼續(xù)

選擇標(biāo)準(zhǔn)數(shù)據(jù)庫,點(diǎn)擊繼續(xù)

選擇MySQL數(shù)據(jù)庫,數(shù)據(jù)庫URL更換為 ?jdbc:mysql://127.0.0.1:3306/openfire?rewriteBatchedStatements=true ? 用戶名默認(rèn)root,點(diǎn)擊繼續(xù)。openfire是你數(shù)據(jù)庫的名稱,127.0.0.1 是你服務(wù)器的IP地址。點(diǎn)擊繼續(xù)按鈕


輸入郵箱和管理密碼(輸入密碼完成后要記住呀,后期需要登錄的)

設(shè)置完郵箱和密碼后點(diǎn)擊繼續(xù),如下圖

點(diǎn)擊登錄,輸入密碼(希望你們不會出現(xiàn)忘記密碼的現(xiàn)象)

登錄完成后進(jìn)入管理頁面,里面會有服務(wù)器的基本信息,包括用戶、會話信息、分組等信息。

PS:到目前為止Openfire環(huán)境算是配置好了,說難不難,說簡單也有點(diǎn)麻煩,看你運(yùn)氣嘍。

是不是感覺終于把環(huán)境弄好了裝了這么多東西可以寫代碼了……但是……接著來

安裝 spark

??附上下載鏈接https://spark.en.softonic.com/mac/download#downloading我下載時(shí)可慢,不知道是翻墻的緣故還是公司網(wǎng)速不行。

安裝spark過程中可能會提醒你需要和Java se6結(jié)合使用,點(diǎn)擊更多信息里下載就行。

登錄spark 用戶名和密碼是你在配置openfire是設(shè)置的賬戶密碼登錄完成后刷新openfire頁面,你會發(fā)現(xiàn)小人變綠了。(PS:Spark 是為了本機(jī)測試方便,可以完成添加好友和聊天的測試)

好了好了……開始寫代碼了

代碼我接不截圖了,直接附上GitHub鏈接吧:https://github.com/Liangqianyong/XMPP-iOS- ?下載的童鞋麻煩點(diǎn)一下星星哈。


下面說一下配置Xcode環(huán)境的步驟:

當(dāng)你導(dǎo)入XMPP開發(fā)包后編譯會出現(xiàn)報(bào)錯,我們需要配置一下XMPP運(yùn)行使用的環(huán)境。

1、添加靜態(tài)庫

2、在Build Settings 中搜索 Header Search Paths ?添加 /usr/include/libxml2

3、現(xiàn)在你在編譯一下,發(fā)現(xiàn)還是會有報(bào)錯,會提醒你頭文件沒有找到

解決辦法:新建一個pch文件,修改為相對路徑后再pch文件中導(dǎo)入<UIKit/UIKit.h>框架


好了,現(xiàn)在應(yīng)該是沒有錯誤信息了,接下來就可以寫代碼了。

由于水平有限,會有很多不足的地方,歡迎提出指正。

QQ:929245885 ?有問題可以聯(lián)系我。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容