基於Openfire Smack開發即時通訊應用、Spark安裝,註冊,登入,退出登入(二)
上一篇已經把伺服器的Openfire環境搭建好了,現在我們就可以來搭建應用App的環境了這樣就可以使用Smack的API來與伺服器進行通訊了。
一:繼續去igniterealtime下載Smack的jar包和Spark.exe
二:Spak,第一次使用需要設定點東西,不然登入不上。
點選進入高階,將倒數第三,第二個勾上這樣就可以登入了(至於為什麼自己領悟吧 ^_^)
現在我們隨便登入一個帳號,域名填寫你伺服器的ip地址(要是沒有可以進入後臺手動建立一個)
安裝好了這個,在開發的時候就非常方便測試了。
三:應用開發所需要的jar包(缺一不可^_^)
jxmpp
的兩個jar包igniterealtime官網
並沒有下載,這裡給出下載連結jxmpp
四:搞了這麼久終於可以開始敲程式碼了,先來個登入:
這裡有幾點需要注意的地方:
- XMPPTCPConnection connection //全域性就只能有一個,所有的操作基本上都是基於connection
- 由於使用的是TCP連線,所以還得保證
connection
不死所以最好就放在服務中進行 - 第一步就是讓你的應用連線上Openfire伺服器
private XMPPTCPConnection connection;
/**
* 獲得與伺服器的連線
*
* @return
*/
public XMPPTCPConnection getConnection() {
try {
if (connection == null) {
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
//伺服器IP地址
.setHost("119.29.193.12")
//伺服器埠
.setPort(5222)
//伺服器名稱(管理介面的 主機名)
.setServiceName("izqhrnmkjn55syz")
//是否開啟安全模式
.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled)
//是否開啟壓縮
.setCompressionEnabled(false)
//開啟除錯模式
.setDebuggerEnabled(true).build();
connection = new XMPPTCPConnection(config);
connection.connect();
}
return connection;
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
四:註冊使用者,Map中對應一些使用者資料;由於方法沒有返回值所以操作是否成功就看會不會拋異常若不會則成功了。
/**
* 建立一個新使用者
*
* @param username 使用者名稱
* @param password 密碼
* @param attr 一些使用者資料
* @see AccountManager
*/
public boolean registerAccount(String username, String password, Map<String, String> attr) {
AccountManager manager = AccountManager.getInstance(connection);
try {
if (attr == null) {
manager.createAccount(username, password);
} else {
manager.createAccount(username, password, attr);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
attr對應的一些屬性值 name;email;first;last;city;state;zip;
phone;url;date;misc;text;remove(可以檢視AccountManager中的getAccountAttributes()函式註釋)
五: 登入操作,檢視結果同上。
/**
* 登入
*
* @param userName 使用者名稱
* @param password 密碼
*/
public void login(final String userName, final String password) {
new Thread(new Runnable() {
@Override
public void run() {
try {
connection.login(userName, password);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
六:退出登入
/**
* 退出登入
*
* @return code
* @code true 退出成功
* @code false 退出失敗
*/
public boolean logout() {
try {
connection.instantShutdown();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
七:修改使用者密碼
/**
* 修改密碼
*
* @param newPassword 新密碼
* @return code
* @code true 修改成功
* @code false 修改失敗
*/
public boolean changePassword(String newPassword) {
try {
AccountManager manager = AccountManager.getInstance(connection);
manager.changePassword(newPassword);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
結語:Smack的Api還是相對比較簡單的,這個版本的Api基本上都是使用的單例模式所以也非常好些
相關文章
- 登入註冊的測試用例
- 基於以太坊上實現DApp的登入註冊APP
- Flask——登入、退出Flask
- 直播平臺開發,jsp登入註冊程式碼JS
- javaWeb登入註冊頁面JavaWeb
- Luffy /4/ 多方式登入介面&登入註冊前端頁面前端
- Auth Session 退出他人正登入的賬號、passport 退出登入SessionPassport
- 基於session的登入與退出思維導圖Session
- 使用redis完成註冊和登入Redis
- 個人作業登入+註冊
- js登入與註冊驗證JS
- Django2 Web 實戰02-使用者註冊登入退出DjangoWeb
- 基於SpringBoot從零構建部落格網站 - 整合ehcache和開發註冊登入功能Spring Boot網站
- 前端開發--登陸註冊前端
- jsp+servlet登入註冊頁面JSServlet
- vue登入註冊,帶token驗證Vue
- bootstrap4登入註冊頁面boot
- 基於 Session 實現簡訊登入Session
- 直播原始碼網站,新使用者登入時的註冊頁面和登入頁面原始碼網站
- node+ajax+mysql實現登入註冊MySql
- go-zero學習之註冊登入Go
- Halo 開源專案學習(三):註冊與登入
- Spring Boot退出登入注意點Spring Boot
- 登入介面:從資料庫中獲取資訊驗證登入(與註冊介面相聯絡)資料庫
- [JavaScript+Firebase]基於Google Firebase的無後臺web端註冊與登入JavaScriptGoWeb
- Laravel5.8 入門系列二,快速實現使用者註冊登入功能Laravel
- C#開發——網站應用微信登入開發C#網站
- QT開發的即時通訊軟體(基於UDP)QTUDP
- express+vue+mongodb+session 實現註冊登入ExpressVueMongoDBSession
- Laravel 註冊登入 user Model 使用 uuid 的坑LaravelUI
- Laravel 實現 passport 使用者註冊登入LaravelPassport
- 華納註冊登入網址-l8469871871
- 99廳怎麼註冊登入-l9188193789
- 華納娛樂註冊登入-l9188193789
- 商城網站新增了最新阿里大魚簡訊註冊登入網站阿里
- HTML基礎實現簡單的註冊和登入頁面HTML
- 10.註冊和登入功能實現(3)—— 註冊資料寫入資料庫資料庫
- Android 即時通訊開發小結(二)Android
- Flutter 登入退出功能注意事項Flutter