基於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基本上都是使用的單例模式所以也非常好些
相關文章
- 即時通訊軟體openfire+spark+smackSparkMac
- 進入與退出應用 / 登入與退出
- 基於xmpp openfire smack開發之openfire介紹和部署[1]Mac
- Flask——登入、退出Flask
- javaWeb登入註冊頁面JavaWeb
- 個人作業登入+註冊
- 基於xmpp openfire smack開發之smack類庫介紹和使用[2]Mac
- 基於以太坊上實現DApp的登入註冊APP
- Luffy /4/ 多方式登入介面&登入註冊前端頁面前端
- 直播平臺開發,jsp登入註冊程式碼JS
- Auth Session 退出他人正登入的賬號、passport 退出登入SessionPassport
- smack和openfire通訊的簡單例子Mac單例
- 基於session的登入與退出思維導圖Session
- 進入與退出應用 / 會話重用與自動登入會話
- js登入與註冊驗證JS
- 使用redis完成註冊和登入Redis
- APP「登入註冊模組」詳解APP
- laravel使用者登入註冊Laravel
- "留拍"-註冊/登入詳解
- 基於XMPP協議Android即時通訊開源應用協議Android
- 基於 Session 實現簡訊登入Session
- 前端開發--登陸註冊前端
- 關於app的登入退出內容APP
- Django2 Web 實戰02-使用者註冊登入退出DjangoWeb
- 基於xmpp openfire smack開發之Android客戶端開發[3]MacAndroid客戶端
- Android基於XMPP Smack openfire 開發的聊天室(二) 【聊天資訊、成員】AndroidMac
- android基於openfire+smack開發之【架構瞭解】AndroidMac架構
- vue登入註冊,帶token驗證Vue
- bootstrap4登入註冊頁面boot
- 小程式開發:python sanic 實現小程式登入註冊Python
- C#開發——網站應用微信登入開發C#網站
- 採用spark和openfire實現即時通訊系統Spark
- QT開發的即時通訊軟體(基於UDP)QTUDP
- 直播原始碼網站,新使用者登入時的註冊頁面和登入頁面原始碼網站
- 基於SpringBoot從零構建部落格網站 - 整合ehcache和開發註冊登入功能Spring Boot網站
- node+ajax+mysql實現登入註冊MySql
- go-zero學習之註冊登入Go
- jsp+servlet登入註冊頁面JSServlet