現在雖然環信的xmpp框架很火,但是也有一些弊端。環信的框架部分代碼不開源,而且收費模式不科學,用戶量一直低于免費線則好,一旦超過,收費極高。 xmpp感覺還是從xmppFramework框架學起比較科學。能夠更清楚的了解即時通訊里各個操作的api,就算以后出了新的框架底層也要這么用的。主要用到的工具軟件有Openfire,MySQL,javajdk,phpMyAdmin,Adium等
將本文拉到最下面能看到配置完成之后的聊天效果。
附:需要用到的軟件地址是 http://pan.baidu.com/s/1tr7oa 網盤密碼d3lb
如果你不是在董鉑然博客園看到本篇文章,請點擊查看原文
安裝完之后 會看到偏好設置里的如下界面
把MySQL 和 Openfire都點開 并且都點start讓兩個都啟動
到終端里操作 (美元符號$不要輸入)
$ cd 數據庫的目錄(從Finder拖)
$ ./alias
重新啟動終端,輸入ls,如果發現目錄變藍,通常說明配置正確
如果運行了這個腳本時無法設置密碼,就使用
$ mysqladmin -u root passWord 修改mysql密碼 比如123456
$ mysql -u root -p 登陸數據庫
如果能登陸成功,quit退出 進入下一步
這個是數據庫管理軟件,比較好用,mac上自帶的軟件要收費328美金,文件夾里也有個盜版但不能更新了,而且10.10系統用不了。(NaviCat不建議用)
phpMyAdmin是網頁管理,非常好用。配置如下
復制到Apache根目錄 → 將目錄名修改為phpMyAdmin → 將 config.sample.inc.php 復制,重命名為:config.inc.php → 打開config.inc.php 將 localhost 改為 127.0.0.1
配置完成后啟動 apache服務器
$ sudo apachectl -k start
Apache如果沒配置好 可參見這篇文章配置也很簡單 http://www.49028c.com/dsxniubility/p/4294456.html
phpMyAdmin的登錄頁面如下
打開瀏覽器,輸入http://localhost → 選擇 phpMyAdmin,進入phpadmin的登錄頁面 → 輸入mysql的用戶名密碼root密碼123456
→ 新建一個數據庫,名字:openfire 排序規則:utf8_general_ci → 點擊openfire(剛剛新建的空數據庫)→ 點SQL
這時需要一串腳本代碼去這里復制
打開finder,進入目錄 /usr/local → 在文件夾openfire上,點擊右鍵,選擇“顯示簡介”在“共享與權限” → 解鎖后添加本機賬號具有“讀與寫”的權限
→ 進入 /usr/local/openfire/resources/database → 找到openfire_mysql.sql,并用Xcode 打開 cmd+A, cmd +C
回到safari,確認在SQL輸入框中,cmd +v 并且點擊執行,表就創建完了 。點擊左側的openfire,確認數據庫安裝正確!
點擊偏好設置里的 openfire 在面板的右邊有 open admin console 點開就是openfire的服務器配置頁面(沒有要改的地方就直接下一步)
選擇簡體中文下一步 → 域"dsx.local" 非常重要!默認是自己"計算機的名稱.local" 在系統偏好共享中可以看到自己的計算機名稱
→ 數據庫設置“標準數據庫連接” → 數據庫驅動選項:MySQL 把自動生成的數據庫的URL改為
jdbc:mysql://127.0.0.1:3306/openfire?rewriteBatchedStatements=true (其實就是修改主機名為127.0.0.1,數據庫名稱為:openfire)
→ 用戶名密碼是 root 和 123456 → 點擊繼續 輸入xmpp管理員的初始密碼:比如再寫個123456
登錄到管理頁面 填寫xmpp用戶名和密碼 是 admin 和 123456 如果能夠登錄成功,說明服務器安裝完成!
配置客戶端 iChat(iMessage)1] 添加用戶,選擇“其他”類型 賬戶類型:jabber 用戶名:admin@dsx.local 123456 信任證書
配置小鴨子 Adium_1.5.10 ,在客戶端文件夾里,打開后按照提示拖入應用程序就安裝完成了,第一次啟動可能比較慢
然后這iMessage 和 小鴨子客戶端里的兩個 賬號互相加好友就可以 開始聊天了。
如果你不是在董鉑然博客園看到本篇文章,請點擊查看原文
后續很快會整理關于xmpp的各種模塊(用戶上線下線,用戶注冊,加好友,互相發送信息,發送圖片和音頻信息等)的學習筆記,有興趣的可以關注我。
新聞熱點
疑難解答