Java領(lǐng)域的即時(shí)通信解決方案可以考慮基于xmpp協(xié)議的openfire+smack+spark來(lái)實(shí)現(xiàn)柄延,都是開(kāi)源的。最近一直在研究這個(gè)茶鉴,也做了一個(gè)簡(jiǎn)單的Android即時(shí)聊天客戶端逐样,支持文本泳桦、圖片汤徽、語(yǔ)音消息。
Demo地址請(qǐng)見(jiàn)此系列文章最后一篇
XMPP協(xié)議
大家自行到百度google上去補(bǔ)腦吧灸撰。
openfire谒府、smack、spark
openfire是基于XMPP 協(xié)議的即時(shí)通信的服務(wù)器端的一個(gè)實(shí)現(xiàn)浮毯,如果你要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)通信或是簡(jiǎn)單的群聊狱掂,你完全可以使用該服務(wù)openfire本身提供的服務(wù)而不需要編寫(xiě)一行服務(wù)端的代碼,非常方便亲轨。同時(shí)openfire還支持插件的擴(kuò)展,如果你需要豐富增加服務(wù)端的功能鸟顺,你可以基于openfire進(jìn)行插件二次開(kāi)發(fā)惦蚊,或者直接修改openfire的源碼實(shí)現(xiàn)。
smack是XMPP傳輸協(xié)議的Java實(shí)現(xiàn)讯嫂,提供了一套API接口(類似于JDK中的HttpUrlConnection提供Http連接請(qǐng)求)蹦锋,它是連接openfire服務(wù)、發(fā)送通信信息的橋梁欧芽。
-
spark是基于smack實(shí)現(xiàn)的一個(gè)XMPP即時(shí)通信客戶端(PC端的)莉掂,spark貌似也是可以進(jìn)行插件擴(kuò)展的。
官網(wǎng):http://www.igniterealtime.org/千扔,我目前用的都是最新版本的openfire3.10.2憎妙,smack4.1.4
在smack4.1版本之前库正,smack本身是不支持Android平臺(tái)的,不過(guò)當(dāng)時(shí)有一個(gè)替代品asmack厘唾,github地址:https://github.com/flowdalic/asmack褥符,在smack4.1之前我們可以通過(guò)asmack來(lái)配合openfire來(lái)實(shí)現(xiàn)Android端的即時(shí)通信應(yīng)用,asmack和smack貌似api都差不多(我沒(méi)看過(guò)asmack)抚垃。smack4.1之后就開(kāi)始支持Android平臺(tái)了喷楣,所以現(xiàn)在可以放棄asmack了。Windows下的Openfire安裝部署
去官網(wǎng)上下載最新的Openfire安裝包鹤树,我下載的是不包含JDK的壓縮包(Does not include Java JRE)铣焊,解壓就可以用了,前提是你已經(jīng)裝了JDK了罕伯,而且JDK版本必須是1.7或以上的版本曲伊,Openfire不支持JDK6,解壓之后在Openfire的根目錄bin目錄下執(zhí)行openfire.exe即可捣炬,啟動(dòng)之后如下圖
在啟動(dòng)服務(wù)配置之前熊昌,先在你的數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為openfire的數(shù)據(jù)庫(kù)(支持多種數(shù)據(jù)庫(kù)),點(diǎn)擊圖中的Launch Admin即會(huì)在瀏覽器上打開(kāi)Openfire的配置界面湿酸,如下圖:
上圖中選擇簡(jiǎn)體中文婿屹,然后繼續(xù):
上圖中配置域,最好配置為你的服務(wù)器ip地址或者是域名推溃,其他的默認(rèn)不管昂利,然后繼續(xù):
上圖中選擇標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)連接,繼續(xù):
上圖中選擇你的數(shù)據(jù)庫(kù)類型铁坎,然后在數(shù)據(jù)庫(kù)URL中填寫(xiě)正確的連接字符串蜂奸,再填上你的數(shù)據(jù)庫(kù)用戶名和密碼,然后繼續(xù)
上圖中直接默認(rèn)選擇初始設(shè)置硬萍,然后繼續(xù):
上圖中填上管理員賬戶admin的郵件地址扩所,然后填上該管理員賬戶的密碼,然后繼續(xù):
到上圖即表示你的Openfire服務(wù)安裝配置完成朴乖,然后點(diǎn)擊登錄后進(jìn)入到管理員登錄界面:
Openfire默認(rèn)的管理員賬戶為admin祖屏,秘密即為上面你設(shè)置的密碼,登錄成功之后买羞,你可以通過(guò)這個(gè)Openfire管理平臺(tái)管理該服務(wù)商所有的賬戶信息袁勺,服務(wù)器信息等。
Linux環(huán)境下Openfire的安裝部署
在官網(wǎng)上下載最新的源碼安裝包(如: openfire_3_10_2.tar.gz )畜普,我選擇的也是不包含jdk的源碼安裝包期丰,將該包上傳至服務(wù)器某個(gè)目錄下,在該目錄下執(zhí)行命令 tar -zxvf openfire_3_10_2.tar.gz,解壓完成后切換到Openfire/bin目錄下執(zhí)行命令: ./openfire start 啟動(dòng)Openfire服務(wù)钝荡,然后在你自己的pc機(jī)瀏覽器上打開(kāi)http://服務(wù)器ip:9090,即會(huì)進(jìn)入Openfire的配置界面街立,前提是必須準(zhǔn)備好一個(gè)數(shù)據(jù)庫(kù),配置過(guò)程與Windows下的配置過(guò)程一樣化撕,請(qǐng)參考上面的操作步驟几晤。
OK,Openfire服務(wù)的安裝配置就介紹完了植阴,下面一篇我就開(kāi)始介紹smack的用法蟹瘾。