Openfire 即时通讯系统(服务器端+Android客户端)一
目標: 搭建一個小型的即時通訊系統。
服務器端: Openfire
Android客戶端:Smack
開發環境:Windows10、JDK、Android SDK
IDE: Android Studio
數據庫: MySQL(Windows下推薦使用wnmp)
開始!
?
一、 服務器端
?
1.? 直接從openfire的github倉庫下載release版本:https://github.com/igniterealtime/Openfire/releases/download/v4.3.2/openfire_4_3_2.zip
版本是最新的4.3.2(2019/05/22)
?
2. 配置java環境(后面要開發android,這個應該都有了)
?
3. 安裝數據庫,并準備一個空的數據庫。
?
4. 解壓openfire到一個目錄。
?
5. 打開命令行,進入openfire/bin目錄,執行:
openfire.bat6. 這時會彈出一個java的命令行界面,顯示如下:
?
8.? 打開瀏覽器,訪問:http://localhost:9090
?
選擇簡體中文,點擊continue。
?
9.? 填寫域和Host地址,這里因為是本地搭建,寫任意的就行比如:test.com
?
10. 接著選擇“標準數據庫連接”
11. 配置數據庫,填寫數據庫的地址、名稱和用戶名密碼
?
11.1 注意,這時如果使用默認的編碼設置,可能會收到這樣一條錯誤:
11.2 提示我們看error.log,打開openfire/logs/error.log文件,我們發現了這個報錯:
這個是時區設置問題,解決辦法:在設置數據庫連接地址的地方加上時區和編碼格式的設置:
useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC就行了。
但是
在設置完這個結果后,如果重啟openfire,可能會遇到這種錯誤:
java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the last attempt is as follows: java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near ';useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC'.打開openfire生成的目錄里的openfire配置文件:
E:\server\openfire1\Openfire\distribution\target\distribution-base\conf\openfire.xml找到這行:
<serverURL>jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC</serverURL>會發現里面的“&”符合被轉義成了“&amp;”但是每個轉義都多了一個“amp;”,改成這個“&”就行了。
?
12. 接著選擇默認設置
13. 設置管理員密碼
14. 完成設置。
?
15. 登錄頁面,openfire啟動成功。
?
下一篇文章開始開發Android客戶端程序。
總結
以上是生活随笔為你收集整理的Openfire 即时通讯系统(服务器端+Android客户端)一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript 双击单机 解
- 下一篇: 把android系统装到sd卡,在And